一.scala 标识符
注意
1.标识符不能以数字开头;
2.if不能作为变量名。 if是关键字;
3.只能是数字,字母下划线。
二.关键字
1.def: 定义方法
2.implicit: 隐式转换
3.lazy: 懒加载
4.match: 模式匹配,类似switch
三.Scala代码中的注释
在代码中添加注释可以解释说明程序,提高程序的可读性。和Java一样,在Scala中,主要有三种注释的方式:
-
单行注释。 // 注释的内容
-
多行注释。 /* 注释的内容 */
-
文档注释。/** 注释的内容*/
四.scala分号
1.如果一行只有一条语句或一个表达式时,则分号可以加,也可以不加;
2.如果一行有多条语句或多个表达式时,则分号必须填写。
Scala在自动推断分号时一般以换行代表一条语句或一个表达式的结束,但是在遇到以下任何一种情况时都会推断出表达式尚未结束,从而把当前表达式延续到下一行:
1.如果当前行以一个不能结尾的词结尾,如英文句号或中辍操作符;
2.如果当前行结尾出现在()或[]内。
五.Scala的变量
变量有两个 var 和 val
定义:var用来定义可变变量 ,val用来定义不可变变量
定义一个变量
var | val 变量名:数据类型 = 值
定义多个变量
var|val 变量名1, 变量名2, ... = 值
此时,所有的变量都有同样的数据类型和同样的值
六.Scala的数据类型概述
Scala支持的数据类型
1. Byte: 8位有符号整数。数值区间为-128~127
2. Short:16位有符号整数。数值区间为-32768~32767
3. Int: 32位有符号整数。数值区间为-2147483648~2147483647
4. Long: 64位有符号整数。数值区间为-9223372036854775808~ 9223372036854775807
5. Float:32位IEEE 754标准的单精度浮点数
6. Double:64位IEEE 754标准的双精度浮点数
7. Char:16位无符号Unicode字符, 区间值为U+0000~U+FFFF
8. String:字符序列
9. Boolean:true或false
-
Unit:表示无值,和其他语言中的void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()
-
Null:null或空引用
-
Nothing:Nothing类型在Scala的类层级的最底端,它是任何其他类型的子类型
-
Any:Any是所有其他类的超类
-
AnyRef:AnyRef类是Scala里所有引用类(reference class)的基类
类型层次图:
七 Scala中的数值数据类型
object base03 {
def main(args: Array[String]): Unit = {
// 声明变量
var a:Byte = 1
a = 126
var b = 1 // 默认是 Int
var c = 1.1 // 默认是 Double
//char 单引号
var ch1:Char = 'A'
var ch2 = 'a'
var ch3:char = 97
println(ch1,ch2,ch3)
}
}
八.Scala的字符串类型
object base04 {
def main(args: Array[String]): Unit = {
//println (" 床前明月光,
// 疑是地上霜 ")
// 多引号,可以支持换行
// println ("""
// 床前明月光,
// 疑是地上霜。
// """)
// var name = "小花"
// var age = 19
// println(s"我的名字是:$name,$age 岁")
}
}
获取输出
九.类型转换
在赋值和运算时,范围小的数据类型会自动转换为范围大的数据类型,再计算。
1 + 1.1 的结果就是Double类型的2.1。
范围类型从小到大排列如下: byte,short,char → Int -> Long → Float → Double
var a:Double = 1
// (市长,省长) === 谁的官大? 省长!
// var b = 2 + a
// 强制类型转换, 变量.to 类型 ()
// var c:Int = 1.1
var c:Int = (1.123).toInt
var ch:Char = 65.toChar
println(ch)