码迷,mamicode.com
首页 > 其他好文 > 详细

scala学习手记36 - 容器基础

时间:2016-09-12 00:39:08      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

scala的容器包括Set、List和Map。三种容器的特征和Java中一样。scala为每种容器都提供了可变和不可变两种版本,分别位于scala.collection.mutable或scala.collection.immutable包下。scala建议使用尽量使用不可变容器,尤其是在多线程环境下。并且scala默认的容器就是不变的版本。

可变容器没什么好说的,java中的容器就是。来看一个不可变容器的实例:

val colors1 = Set("Blue", "Green", "Red") 
var colors = colors1
println("colors1 (colors): " + colors) 

colors += "Black" 
println ("colors: " + colors) 
println ("colors1: " + colors1)

在上面的代码创建了一个不可变的Set实例,而后尝试对这个实例进行修改。然而尽管是使用的var修饰的Set实例,仍然没有修改实例本身,相反的是创建了一个新的Set实例。

技术分享

再来看我们创建Set实例的方式,我们并没有使用new关键字,而是直接使用了类名(参数列表)这样的方式。无疑,后者更为简洁。这主要是依赖工厂方法apply实现的。

类似于X(...)的语句,其中X是个类名或实例引用,会当作X.apply(...)处理。这样,如果类的伴生对象有apply()方法的话,Scala会自动调用,而Map和List是有apply()方法的。

###########

scala学习手记36 - 容器基础

标签:

原文地址:http://www.cnblogs.com/amunote/p/5863101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!