在语法层面,支持关联映射
1 var capital = Map("china" -> "beijing") 2 capital += ("japan" -> "dongjing") 3 println(capital("japan"))
列表 List:
scala> val numbers = List(1, 2, 3, 4) numbers: List[Int] = List(1, 2, 3, 4)
使用numbers(0)等来获取链表中的数据
集 Set:
scala> Set(1, 1, 2) res0: scala.collection.immutable.Set[Int] = Set(1, 2)
同样也是用set(1)等来取数据。括号里的元素是set中的数据,要是存在,返回true,否则返回false。另外,set中的元素是不重复的,会自动删除掉
元组 Tuple:
元组是在不使用类的前提下,将元素组合起来形成简单的逻辑集合。
val tup1 = ("one", 1) tup1 match { case ("one", 1) => println("match completely") case ("two", 2) => println("match two") case (arg1, arg2) => println("match %s".format(arg1)) }
1.元组中如何获取其中的数据:tup1._1获取元组中的第一个数据。同理,tup1._2获取元组中的第二个数据。注意下标是从1开始的。
2.如例子中所示,元组可以和模式匹配很好的结合。例子中,前两个case都是具体的值匹配。最后一个是将元组中的值,传给arg1和arg2,再做相应的处理。
2.元组可以用("one",1)或者("one" -> 1)的形式来创建。不要和Map搞混了,Map只能使用后一种形式。
映射 Map:
它可以持有基本数据类型。 Map(1 -> 2) Map("foo" -> "bar") 映射的值可以是映射甚或是函数。 Map(1 -> Map("foo" -> "bar")) Map("timesTwo" -> { timesTwo(_) })
注意:Map也是使用map(1)的形式,取其中的数据。
也可以使用map.get(1)的形式取,不过这种情况下,返回的是option对象,要通过模式匹配或者getOrElse()来取。
scala> map.get(1).getOrElse(0) res4: Any = Map(one -> 1)
浙公网安备 33010602011771号