目录
一、变量和常量的定义
1.1、数据中的定义
大家最先接触变量和常量,应该在学习函数的时候,因此我们先来看一下数据中对二者的定义。
变量:在某一变化过程中,数值发生变化的量称为变量。变量分为自变量和因变量,亦称函数。
常量:在某一变化过程中,数值始终不变的量称为常量。
1.2、Java中的定义
变量类型 变量名称 = 初始值 int a = 10
final 常量类型 常量名称 = 初始值 final int b = 20
在Java中常量是特殊的变量,一旦赋值就不可变。
1.3、Scala中的定义
var 变量名 [: 类型] = 初始值 var i:Int = 10
val 常量名 [: 类型] = 初始值 val j:Int = 20
其中,类型可以省略,var是变量variable的简写,val是值value的简写,从定义时就将二者区分开来。
在Scala中能用常量的地方不用变量,更符合函数编程的思想。
二、声明规则
(
1
)声明变量时,类型可以省略,编译器自动推导,即类型推导
(
2
)类型确定后,就不能修改,说明
Scala
是强数据类型语言。
(
3
)变量声明时,必须要有初始值
(
4
)在声明
/
定义一个变量时,可以使用
var
或者
val
来修饰,
var
修饰的变量可改变,val 修饰的变量不可改。
三、示例
def main(args: Array[String]): Unit = {
//
(
1
)声明变量时,类型可以省略,编译器自动推导,即类型推导
var age = 18
age = 30
//
(
2
)类型确定后,就不能修改,说明
Scala
是强数据类型语言。
// age = "tom" //
错误
//
(
3
)变量声明时,必须要有初始值
// var name //
错误
//
(
4
)在声明
/
定义一个变量时,可以使用
var
或者
val
来修饰,
var
修饰
的变量可改变,
val
修饰的变量不可改。
var num1 = 10 //
可变
val num2 = 20 // 不可变
num1 = 30 //
正确
//num2 = 100 //错误,因为 num2 是 val 修饰的
}
var 修饰的对象引用可以改变,val 修饰的对象则不可改变,但对象的状态(值)
却是可以改变的。
object TestVar {
def main(args: Array[String]): Unit = {
// p1 是 var 修饰的,p1 的属性可以变,而且 p1 本身也可以变
var p1 = new Person()
p1.name = "dalang"
p1 = null
// p2 是 val 修饰的,那么 p2 本身就不可变(即 p2 的内存地址不能变),但是,p2 的属性是可以变,因为属性并没有用 val 修饰。
val p2 = new Person()
p2.name="jinlian"
// p2 = null // 错误的,因为 p2 是 val 修饰的
}
}
class Person{
var name : String = "jinlian"
}