Scala_【2】变量和数据类型

第二章

注释

标识符的命名规范

Scala对各种变量、方法、函数等命名时使用的字符序列称为标识符

命名规则

  1. 以字母或者下划线开头,后接字母、数字、下划线
  2. 以操作符开头,且只包含操作符(+ - * / # !等)
  3. 第一种和第二种拼接,第一种在前,二者以下划线分隔
  4. 用反引号`...`包括的任意字符串,即使是关键字(39个)也可以

关键字

Scala关键字(39个)

  • package, import, class, object, trait, extends, with, type, for
  • private, protected, abstract, sealed, final, implicit, lazy, override
  • try, catch, finally, throw
  • if, else, match, case, do, while, for, return, yield
  • def, val, var
  • this, super
  • new
  • true, false, null

变量

基本语法: var | val 变量名 [: 变量类型] = 变量值

说明:在Scala中声明一个变量时,可以不指定类型,编译器根据值确定

字符串输出

数据类型关系

  1. Scala中一切数据都是对象,都是Any的子类
  2. Scala中数据类型分为两大类:数值类型(AnyVal)、引用类型(AnyRef),不管是值类型还是引用类型都是对象
  3. Scala数据类型仍然遵守,低精度的值类型向高精度值类型,自动转换(隐式转换)
  4. Scala特殊的类型之Null,它只有一个实例就是Null,它是所有引用类型(AnyRef)的子类
  5. Scala特殊类型之Nothing,是所有数据类型的子类,主要在一个函数没有正常返回值时使用

变量和数据类型

整数类型(Byte、Short、Int、Long)

数据类型 描述
Byte [1] 8位有符号补码整数。数值区间为 -128 到 127
Short [2] 16位有符号补码整数。数值区间为 -32768 到 32767
Int [4] 32位有符号补码整数。数值区间为 -2147483648 到 2147483647
Long [8] 64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807

浮点类型(Float、Double)

数据类型 描述
Float [4] 32位,IEEE 754标准的单精度浮点数
Double [8] 64位, IEEE 754标准的双精度浮点数

字符类型(Char)

字符类型可以表示单个字符,字符类型是Char,16位无符号Unicode字符(2个字节),区间值为U+0000到U+FFFF。

布尔类型(Boolean)

  1. 布尔类型也叫Boolean类型,Booolean类型数据只允许取值true和false
  2. boolean类型占1个字节。

空类型

数据类型 描述
Unit 表示无值,用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()
Null 所有AnyRef的子类型,Null 类型只有一个实例值null
Nothing 所有类型的子类型,是一个象征意义,用于辅助类型推导

数值类型间转换

数值类型自动转换

当Scala程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数值类型,这个就是自动类型转换(隐式转换)

强制类型转换

自动类型转换的逆过程,将精度大的数值类型转换为精度小的数值类型。使用时要加上强制转函数,但可能造成精度降低或溢出,格外要注意

数值类型和String类型间转换

上一章
Scala_【1】概述
下一章
Scala_【3】运算符

相关推荐
XYu123015 小时前
Spring Boot 热部署实现指南
java·ide·spring boot·intellij-idea
烛阴6 小时前
Go 语言进阶:打造可复用的模块,导出你的专属包
后端·go
zhangzhangkeji6 小时前
c++ 定点 new 及其汇编解释
开发语言·c++
W说编程7 小时前
C语言指针专题四 -- 多级指针
c语言·开发语言·数据结构·c++·嵌入式硬件
我命由我123457 小时前
游戏引擎 Unity - Unity 下载与安装
c语言·开发语言·c++·后端·unity·c#·游戏引擎
码农小旋风8 小时前
集群部署时的分布式 Session 如何实现?
后端
我命由我123458 小时前
游戏引擎 Unity - Unity 启动(下载 Unity Editor、生成 Unity Personal Edition 许可证)
c语言·c++·后端·unity·c#·游戏引擎·ue4
Allen Bright8 小时前
Java动态代理:原理与实现
java·开发语言
我码玄黄8 小时前
Manticore Search,新一代搜索引擎之王
后端·搜索引擎·开源
weixin_404679319 小时前
指数分布推导
开发语言·c#