scala 入门(2) -- 入门再探


我想作诗,写雨,写夜的相思,写你,写不出


参考

《Scala 编程》


使用类型参数化数组

参数化的意思是在创建实例的同时完成对它的基本’设置’

下面生成一个 array 实例,含有三个元素的 array

scala> val greetStrings:Array[String] = new Array[String](3)
greetStrings: Array[String] = Array(null, null, null)

同样,由于 scala 的类型推断,可以简写成下面的形式,不过还是建议写上

scala> val greetStrings = new Array[String](3)

Note: 值得注意的是,虽然此 array 实例为 val 类型,不能再改变其大小为 3 的事实,但是其中的三个元素的值是可以改变的

继续简洁的话,还可以这样:

scala> val numNames = Array("zero", "one", "two")
numNames: Array[String] = Array(zero, one, two)

这里是也是使用了下面要说到的 apply 方法

关于 array 元素的访问,跟其他语言不同的是,scala 使用的圆括号

scala> numNames(0)
res0: String = zero

scala> numNames(1)
res1: String = one

上面说到的,数组元素的值是可以改变的

scala> numNames(0)="six"

scala> numNames(0)
res3: String = six

说到为什么使用圆括号的问题,是因为数组也是一个实例,在使用圆括号访问元素 numNames(0) 时,scala 会自动将其转换成 numNames.apply(0),同样,修改值时也只是调用了 update 方法,我们使用的时候只是省略了方法名而已


操作符含义

从 scala 的技术层面上来讲,其已经没有了我们根深蒂固的操作符(+、-、*、/等),在这里,这些操作符都变成了方法调用

如上图所示,1+2,实际上是 (1).+(2)


使用 List

跟 array 不同的是,List 一旦定义,长度和值都将固定,其他对其的操作,本质上都是复制新建了一个新的 list 进行处理返回的结果,其本身是不变的

定义格式为

scala> val one = List(1)
one: List[Int] = List(1)

scala> val two = List(2)
two: List[Int] = List(2)

List 有两种常用的方法,一个是 :::,叠加方法

scala> val onetwo = one ::: two
onetwo: List[Int] = List(1, 2)

另外一个是 ::,读音为cons,表示在原列表前插入元素并返回新列表

scala> val onetwothree = 1 :: onetwo
onetwothree: List[Int] = List(1, 1, 2)

Note:虽然使用 :: 方法的时候,1 写在了前面,但是方法的调用者还是 onetwo 列表,onetwo.::(1)


使用元组 tuple

元组的特别之处在于能包含不同类型的元素

scala> val tu = (1, "hello")
tu: (Int, String) = (1,hello)

访问的时候有点特殊,但还是方法的调用而已

scala> tu._1
res4: Int = 1

scala> tu._2
res5: String = hello

最后

看完这一章,懂了挺多原理上的东西,挺好,关于文件读写的觉得放到后面会比较好,或者遇到了再学习


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值