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")
欢迎转载,转载请标明出处: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")
相关文章推荐
- 62.scala编程思想笔记——映射表
- 61.scala编程思想笔记——集
- 60.scala编程思想笔记——将序列与zip相结合
- 59.scala编程思想笔记——列表和递归
- php随手记
- 58.scala编程思想笔记——序列
- matlab2013b调用cpp文件,mex,VS2013配置问题
- C语言中,头文件和源文件的关系(转)
- django-simple-captcha 使用 以及添加动态ajax刷新验证
- java读取/写入属性文件
- Java 泛型具体解释
- 用代码判断大小端
- 第4讲C语言程序初体验-练习
- python 编程小实例(2) 四则运算小游戏
- c#与c++交互
- Arrays.asList() 返回的list不能add,remove以及慎用java.util.Collections.copy()方法
- 设计模式学习笔记--装饰者模式(Decorator Pattern)
- Java中父类和子类关于构造方法和私有属性的几个问题
- c#与c++类型对应
- Java正则表达式-语法与示例