Scala光速入门笔记及作业(一)
来源:互联网 发布:杜兰特各赛季数据统计 编辑:程序博客网 时间:2024/05/01 20:45
1、lazy介绍
当val被声明lazy时,它的初始化将被推迟,直到我们首次对它取值。
例如:
lazy val words = scala.io.Source.fromFile(“C://Scala.txt”)
如果程序不访问words则文件永远也不会被打开,因此也不会被验证路径是否是正确的
因此在初始化话语句的时候并不会被报错.
lazy val file = scala.io.Source.fromFile(“E:\Scala.txt”)
//把文件里面的内容一行一行的读出来
for(line <- file.getLines())println(line)
2、可变参数用*来代替
参考代码:
def echo(args: String*)
{ for(arg <- args) println(arg)
}
可以用Array数组来传递参数
val arr = Array("Spark","Hadoop")
echo(arr: _*) --不能直接传arr,要用arr: _*来替代,下划线_为参数占位符
3、yield关键字,直译“产出”,将循环计算的结果加入到集合中
val aList = List(1,2,3,4,5)
val bList = List(2,3,4,5,6)
val result = for(a<-aList;b<-bList) yield {a+b}
yield里面还可以编写具体的代码块
4、数组
5、迭代映射
6、元组
映射是键/值对偶的集合。对偶是元组(tuple)的最简单形态---元组是不同类型的值的聚集。如果你有元组,val t = (1,3.14,"fred"),那么可以使用val second = t._2来访问第二个元素,也就是3.14,注意元组的各元组从1开始,而不是0。
作业:移除一个数组中第一个负数后面的所有负数,返回结果
参考代码如下:
import scala.collection.mutable._object ScalaFirst { def main(args: Array[String]) { val array = ArrayBuffer(-1, 2, 3, 4, -5, -6, -7, 9, 8, -10) var flag = true val result = for (i <- 0 until (array.length) if (flag || array(i) >= 0)) yield { if (array(i) < 0) flag = false; array(i) } result.foreach(println) }}
- Scala光速入门笔记及作业(一)
- Scala 光速入门之一 笔记
- Scala光速入门
- scala 光速入门 第一天
- 第一课 Scala光速入门
- Scala光速入门之面向对象(二)
- 初学入门Scala笔记(一)
- Spart内核天机解密(2016)第一讲 Scala光速入门
- R语言光速入门,R语言笔记,
- Scala学习笔记(一)入门前凑
- scala笔记(一)
- Scala基础入门(一)Scala 简介
- 3000门徒内部训练绝密视频(泄密版)第1课:大数据最火爆语言Scala光速入门
- scala学习笔记一(基础,安装及数据类型)
- Scala光速入门之Scala的基本语法、Array、Map、Tuple等
- 汇编写驱动(一)——光速入门
- Scala学习笔记(一)
- scala学习笔记(一)
- Storm集群启动与停止脚本及其注意事项
- 归并排序(分治法)
- *[Lintcode]Trailing Zeros
- leetcode 75. Sort Colors
- SqlServer2012 ID自增需要插入指定值处理
- Scala光速入门笔记及作业(一)
- LeetCode *** 137. Single Number II
- 排序(希尔、 堆 归并 快速)
- Spring基础(一)——AOP&IoC
- windows DLL 被修改 案例分析
- hdoj5667 BestCoder Round #80 【费马小定理(膜拜)+矩阵快速幂+快速幂】
- mysql常见问答
- SMBIOS
- 病狗问题