第2章 变量和数据类型
2.1 注释
Scala注释使用和Java完全一样。注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。
2.1.1 单行注释
// 单行注释
2.1.2 多行注释
/*
多行注释
*/
2.1.3 文档注释
/**
文档注释
*/
2.2 变量
变量是一种使用方便的占位符,用于引用计算机内存地址,变量创建后会占用一定的内存空间。基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字母。
2.2.1 语法声明
变量的类型在变量名之后等号之前声明。
scala中变量声明(1) => var 变量名 : 变量的类型 = 变量的值
scala中变量声明(2) => val 变量名 : 变量的类型 = 变量的值
object Scala02_Var {
def main(args: Array[String]): Unit = {
// TODO 变量
// scala中变量声明(1) => var 变量名 : 变量的类型 = 变量的值
var name1 : String = "zhangsan"
// scala中变量声明(2) => val 变量名 : 变量的类型 = 变量的值
val name : String = "lisi"
println(name)
}
}
变量的类型如果能够通过变量值推断出来,那么可以省略类型声明,这里的省略,并不是不声明,而是由Scala编译器在编译时自动声明编译的。
def main(args: Array[String]): Unit = {
// TODO 变量
// 强类型的语言中,类型的声明应该前后统一,如果我明确的知道变量的取值是多少,那么变量的类型就确定了。
// 马丁说:我能猜出来的语法,你不要写了,我帮你。
// 能够通过取值推断变量的类型,那么变量类型可以省略
// 如果使用多态,那么类型不能省略
var name : String = "zhangsan"
var name1 : Object = "lisi"
println(name1)
}
2.2.2 变量初始化
Java语法中变量在使用前进行初始化就可以,但是Scala语法中是不允许的,必须显示进行初始化操作。
object Scala02_Var_2 {
def main(args: Array[String]): Unit = {
// TODO 变量
// scala中声明变量一定要初始化
val name : String = "123"
}
}
2.2.3 可变变量var
值可以改变的变量,称之为可变变量,但是变量类型无法发生改变, Scala中可变变量使用关键字var进行声明
object ScalaVariable {
def main(args: Array[String]): Unit = {
// 用户名称
var username : String = "zhangsan"
username = "lisi" // OK
username = true // Error
}
}
2.2.4 不可变变量val
值一旦初始化后无法改变的变量,称之为不可变变量。Scala中不可变变量使用关键字val进行声明, 类似于Java语言中的final关键字
object ScalaVariable {
def main(args: Array[String]): Unit = {
// 用户名称
val username : String = "zhangsan"
username = "lisi" // Error
username = true // Error
}
}
思考两个问题:
- val和var两个修饰符,哪一个会推荐使用?
- Java中的字符串为何称之为不可变字符串?
2.3 标识符
Scala 可以使用两种形式的标志符,字符数字和符号。
- 字符数字使用字母或是下划线开头,后面可以接字母或是数字,符号" " 在 S c a l a 中 也 看 作 为 字 母 。 然 而 以 " "在 Scala 中也看作为字母。然而以" "在Scala