1. 数组
任何对于对象的值参数应用都将被转换为对apply方法的调用。与之相似的是,当对带有括号并包括一到若干参数的变量赋值时,编译器将对括号里的参数(索引值)和等号右边的对象执行调用。
以数组为例:
val greetString = new Array[String](3) greetString(0) = "Hello"greetString(1) = ","greetString(0) = "world!\n"for (i <- 0 to 2) print(greetString(i))
上段代码的实际调用为:
val greetString = new Array[String](3) greetString.update(0, "Hello") greetString.update(1, ", ") greetString.update(2, "world!/n")for (i <- 0.to(2)) print(greetString.apply(i))
用于生产环境的赋值方法为:
val numNames = Array("zero", "one", "two")val o = Array(1, "one")
2. 列表
val oneTwoThree = List(1, 2, 3)
2.1 两个方法:
:::
实现两个列表叠加并返回新列表的功能,要求左右操作数都是列表::
把新元素组合到现有列表前端。
注意:方法名以:
结尾,右操作数是方法的调用者。所以使用::
时一定要把列表放到右面。
Nil
是空列表的简写,一个建立列表的写法如下:
val oneTwoThree = 1 :: 2 :: 3 :: Nil
List没有提供append
操作是因为随着列表边长,append
的耗时将线性增长,而用::
做前缀操作则仅耗用固定时间。
3. 元组
val pair = (99, "str")
需要说明的是,元组的索引基于1。
3.1 元组与列表的异同:
元组可以包含不同类型的元素,而列表不可(我试了试貌似可以?求解答)
两者元素都不可变
4. 集(set)和映射(map)
scala里的集合(collection)分为可变和不可变两种类型,没有特别指定导入包时,默认为不可变类型。可变集合将元素加入自身,不可变集合则创建并返回新集合。故,在定义集合时要注意val
, var
的选择。
5. 其他
数组元素可变。列表、元组元素不可变。
作者:神奇的腿
链接:https://www.jianshu.com/p/0c2f0ba96853
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦