初始化一个String数组
val strings=new Array[String](3)
strings(0)="hello"
strings(1)="world"
strings(2)="!"
可以看到Scala数组类型是用[ ],而序号是用()。这一点和java不同
当我们想遍历的时候,可以通过遍历序号的方式
for (i <- 0 to 2) { println(strings(i)) }
也可以使用foreach
strings.foreach(string => println(string))
当然也可以让scala替我们做一些工作使得代码更加的简洁
比如
strings.foreach(println(_))
在一些可以自动推断出参数的场景里,我们直接写_就可以了
甚至我们可以直接不写
strings.foreach(println)
甚至我们还可以让它更语义化一些
strings foreach println
这样都是可以的
Scala实际上还提供了一种更简单的数组初始化方式
val strings=Array("hello","world","!")
列表也可以用这种方法初始化
val list = List("hello", "world", "!")
也可以用这种方法初始化
val list = "hello" :: "world" :: "!" :: Nil
直接把元素拼起来
但实际上,这种方法是把元素和列表拼接起来
它是这样的倒着来的,后面的是列表,前面的是元素
val list1 = "!" :: Nil
val list2 = "world" :: list1
val list3 = "hello" :: list2
也就是说如果严格些的话是这样的:
val list = ("hello" :: ("world" :: ("!" :: Nil)))
类似的,当我们想拼接两个列表的时候,可以使用三个冒号:::
val list = list1 ::: list2
Scala中还有一种数据结构,元组Tuple,和python里的元组差不多,元组里面可以有类型不同的元素
val tuple = (1, "hello", List(1, 2, 3))
需要注意的是取值的时候
tuple._1
tuple._2
tuple._3
是从1开始取的,不是使用括号,而是下划线