举一个简单的例子
object boke_demo01 { def main(args: Array[String]): Unit = { var a: Int = 10 //定义一个整型变量,取名 a,并赋初值 10 var b: Int = 12 //定义一个整型变量,取名 b,并赋初值 12 b = 9 //给变量b 赋 9 println("a=" + a) //输出语句,把变量 a 的值输出 println("b=" + b) //把变量 b 的值输出 } }
变量相当于内存中一个数据存储空间的表示,可以把变量看作是一个房间的门牌号,通过门牌号我们可以找到对应的房间,而通过变量名可以访问到变量(值)。
1) 声明/定义变量(Scala要求变量声明时初始化)
2) 使用
object boke_demo01 { def main(args: Array[String]): Unit = { var age: Int = 9 var sal: Double = 9.9 var name: String = "Jack" var ifPass: Boolean = true //在scala中,小数默认为Double ,整数默认为Int var score: Float = 22.9f println(s"${age} ${ifPass}") } }
示意图
var | val 变量名 [: 变量类型] = 变量值
1) 声明变量时,类型可以省略(编译器自动推导, 即类型推导)
2) 类型确定后,就不能修改,说明Scala是强数据类型语言
3) 在声明/定义一个变量时,可以使用var或val来修饰,var修饰的变量可以改变,val修饰的变量不可改变
4) val修饰的变量在编译后,等同于加上final
5) var 修饰的对象引用可以改变,val修饰的则不可改变,但对象的状态(值)却是可以改变的(比如: 自定义对象、数组、集合等)
6) 变量声明时,需要初始值
1) 当左右两边都是数值型时,则做加法运算
2) 当左右两边有一方为字符串,则做拼接运算
1) Scala与Java有着相同的数据类型,在Scala中数据类型都是对象,也就是说Scala没有Java中的原生类型
2) Scala数据类型分为两大类 AnyVal(值类型)和AnyRef(引用类型),注意不管是AnyVal还是AnyRef都是对象
3) 相对于Java的类型系统,Scala更要复杂些,也正是这复杂多变的类型系统才让面向对象编程和函数式编程完美的融合在了一起
原文:https://www.cnblogs.com/zhanghuicheng/p/10742463.html