您的位置:首页 > 编程语言

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

2016-01-04 22:01 183 查看
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")

 

 

 

 

 

 

 

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: