63.scala编程思想笔记——引用和可修改性

原文地址为: 63.scala编程思想笔记——引用和可修改性

63.scala编程思想笔记——引用和可修改性

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50458735
源码下载连接请见第一篇笔记。

var可以被修改,val不行。但是val如果是对象,那么对象本身属性是可以修改的如下:

import com.atomicscala.AtomicTest._

 

class X(var n:Int)

val x = new X(11)

x.n is 11

x.n = 22

x.n is 22

此处,x只是引用了对象。

 

         可修改性表示一个对象可以改变状态。

         Scala标准库中的许多类在缺省情况下都是不可修改的,但是也有可修改版本,不可修改如下:

import com.atomicscala.AtomicTest._

 

val m = Map(5->"five",6->"six")

m(5) is "five"

// m(5) = "5ive" // Fails

m + (4->"four") // Doesn't change m

m is Map(5 -> "five", 6 ->"six")

val m2 = m + (4->"four")

m2 is

Map(5 -> "five", 6 ->"six", 4 -> "four")

可修改版本如下:

import com.atomicscala.AtomicTest._

import collection.mutable.Map

 

val m = Map(5 -> "five", 6 ->"six")

m(5) is "five"

m(5) = "5ive"

m(5) is "5ive"

m += 4 -> "four"

m is

Map(5 -> "5ive", 4 ->"four", 6 -> "six")

// Can't reassign val m:

// m = m + (3->"three")

 

 

 

 

 

 

 

 

 

 

 

 

 

 


转载请注明本文地址: 63.scala编程思想笔记——引用和可修改性

猜你喜欢

转载自blog.csdn.net/dearbaba_8520/article/details/80769415