Scala学习笔记02

来源:互联网 发布:eclipse java mars 2 编辑:程序博客网 时间:2024/05/17 09:37

Scala的容器:

List

  def listTest()={    val list1 = List(1,2,3);    list1.foreach((li: Int) => print(li + " ") );    println();    val list2 = List(4,5,6);    //:::,合并两个列表    var list3 = list1:::list2;    list3.foreach((li: Int) => print(li + " ") );    println();    //::,在列表的开头添加进某个元素    list3 = 0::list1;    list3.foreach((li: Int) => print(li + " ") );  }


操作符::::,合并两个列表。

操作符:::,在列表的开头添加进某个元素。

表达式“0 :: list1”中,::是它右操作数,列表list1的方法。如果一个方法被用作操作符标注,如a * b,那么方法被左操作数调用,就像a.*(b)——除非方法名以冒号结尾。这种情况下,方法被右操作数调用。因此,1 :: list1里,::方法被list1调用,传入0,像这样:list1.::(0)。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Scala的另一种容器对象:元组(tuple)与列表(List)一样,元组也是不可变的,但不同的时,元组可以包含不同类型的元素。

元组代码示例:

object TupleTest {  def main(args: Array[String]) {    val pair = (1,2,"tuple");    println(pair._1);    println(pair._2);    println(pair._3);  }}


访问时,用下划线+下标。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Set:

代码示例:

  def setTest()={   var set = Set(4,5,6);    set += 7;    println(set);  }


* set没有这么简单,他扩展了可变和不可变的两种set,举例的是可变的set。若要实现不可变集,则需要:import scala.collection.mutable.Set。

可变和不可变集的区别:

要向集加入新的变量,可以在集上调用+,传入新的元素。可变的和不可变的集都提供了+方法,但它们的行为不同。可变集将把元素加入自身,不可变集将创建并返回一个包含了添加元素的新集。

同时也可以显示地调用HashSet等。set容器的内容暂时先带过,需要补充。


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Map:

代码示例:

  def mapTest()={    val map = Map(1->"一",2->"二");    println(map);  }
*和Set一样,Map也有两种扩展。和Set类似。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


看得有点匆忙,没办法,以后有空再补上。

0 0