Scala_【2】变量和数据类型
第二章
- 注释
- 标识符的命名规范
- 命名规则
- 关键字
- 变量
- 字符串输出
- 数据类型关系
- 变量和数据类型
- 整数类型(Byte、Short、Int、Long)
- 浮点类型(Float、Double)
- 字符类型(Char)
- 布尔类型(Boolean)
- 空类型
- 数值类型间转换
- 数值类型自动转换
- 强制类型转换
- 数值类型和String类型间转换
注释
标识符的命名规范
Scala对各种变量、方法、函数等命名时使用的字符序列称为标识符
命名规则
- 以字母或者下划线开头,后接字母、数字、下划线
- 以操作符开头,且只包含操作符(+ - * / # !等)
- 第一种和第二种拼接,第一种在前,二者以下划线分隔
- 用反引号`…`包括的任意字符串,即使是关键字(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中声明一个变量时,可以不指定类型,编译器根据值确定
字符串输出
数据类型关系
- Scala中一切数据都是对象,都是Any的子类
- Scala中数据类型分为两大类:数值类型(AnyVal)、引用类型(AnyRef),不管是值类型还是引用类型都是对象
- Scala数据类型仍然遵守,低精度的值类型向高精度值类型,自动转换(隐式转换)
- Scala特殊的类型之Null,它只有一个实例就是Null,它是所有引用类型(AnyRef)的子类
- 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)
- 布尔类型也叫Boolean类型,Booolean类型数据只允许取值true和false
- boolean类型占1个字节。
空类型
数据类型 | 描述 |
---|---|
Unit | 表示无值,用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成() |
Null | 所有AnyRef的子类型,Null 类型只有一个实例值null |
Nothing | 所有类型的子类型,是一个象征意义,用于辅助类型推导 |
数值类型间转换
数值类型自动转换
当Scala程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数值类型,这个就是自动类型转换(隐式转换)
强制类型转换
自动类型转换的逆过程,将精度大的数值类型转换为精度小的数值类型。使用时要加上强制转函数,但可能造成精度降低或溢出,格外要注意
数值类型和String类型间转换
上一章
Scala_【1】概述
下一章
Scala_【3】运算符