欢迎转载,转载请注明出处,徽沪一郎。
Scala中Range可以看成是List的特例,Range的包含的元素类型是Int, 本文介绍如何创建Range
方法一:
val r1 = new Range(1,10,1)方法二:
val r1 = 1 to 10需要注意的是,默认步长是1
可以使用by来改变步长
val r1 = 1 to 10 by 2to和until的区别,to是将结束的元素也算在内是<=,而until是不包括结束元素是<
最容易想到的是与for相结合。
for ( i <- 1 to 10 by 2 ) yield i*3在实际项目中,可能需要将某一范围内的值放在一个线程中处理,那么可以使用range来进行控制。
欢迎转载,转载请注明出处,徽沪一郎。
代码这东西,不写肯定不行,新学Scala不久,将实际遇到的一些问题记录下来,日后也好查找。
今天讲的是如何计算同一集合中元素两两之间的差值,即求开始集合(a,b,c,d)中(b-a,c-b,d-c)
上述代码即可求出两两差值。代码含义稍作解释:
tail表示一个集合中除首元素外的剩余元素,也是一个集合。zip将两个集合组成一个数值对集合,比如原来有两个集合分别是(a,b,c,d), (1,2,3,4),使用zip之后,形成((a,1),(b,2),(c,3),(d,4))map操作中的p._1和p._1表示tuple中的第一个元素和第二个元素既然讲了首元素和剩余元素,肯定要讲到其对立面。分别引述如下
head|tail head表示头元素,tail表示除head之外的剩余元素集合init|last last表示尾元素, init表示除尾元素之外的剩余元素集合
