美图欣赏:
一.背景
学习过程中,会有很多小的并且容易混淆知识点,因此会把它记录下来。
二.val(value)和var(variable)的区别
基本语法:
var|val 变量名 : 变量类型 = 变量值
1.使用var或者val定义一个变量。
使用var(variable)声明变量,可以被重新赋值,引用可以变。
// 定义变量a2,手动指定类型为Int,此时需要保证所赋值类型匹配
scala> var i2:Int = 2
i2: Int = 2
// 变量间可以互相赋值,并可以使用var重新定义
scala> i2 = 3
i2: Int = 3
2.使用val(value)声明常量, 引用不可变
val修饰的变量,相当于Java中final修饰的变量;
注意:是引用不可变
scala> val a = 2
a: Int = 2
scala> a
res5: Int = 2
scala> a = 3
<console>:12: error: reassignment to val
a = 3
再次定义一个新的常量val ,是可以的
scala> val a = 8
a: Int = 8
三.举个Map的例子
1.在val中 map的值是可以变的,但是map的引用依然没有变
2.在var中,map的值是可以变的,但是map的引用可以变
scala> val map = scala.collection.mutable.Map(("Jackson",10000),("Tom",2000))
map: scala.collection.mutable.Map[String,Int] = Map(Jackson -> 10000, Tom -> 2000)
scala> map("Jackson") = 20000
scala> map
res4: scala.collection.mutable.Map[String,Int] = Map(Jackson -> 20000, Tom -> 2000)
scala> var map = scala.collection.mutable.Map(("Jackson",10000),("Tom",2000))
map: scala.collection.mutable.Map[String,Int] = Map(Jackson -> 10000, Tom -> 2000)
scala> map("Jackson") = 30000
scala> map
res7: scala.collection.mutable.Map[String,Int] = Map(Jackson -> 30000, Tom -> 2000)
————保持饥饿,保持学习
Jackson_MVP