scala(2) 变长参数 lazy 异常处理 数组Array Map tuple
2016-03-28 22:15
555 查看
可变长参数
声明参数类型后加*
def union(s:Int*)={
var sum=0
for (i:Int<-s){
sum+=i
}
sum
}
print(union(1,2,3,4,56,7))
lazy懒加载
只有调用时候在会被加载,一般使用在消耗内存/CPU的时候使用。
异常处理
例如:
数组Array
Array默认是不可变的,如果需要则用可变的ArrayBuffer。
Map
Map默认是不可变的,如果需要则用scala.collection.mutable.Map
tuple元组
需要注意的是元组的index是从1开始的,并且不能改变。
例如:
val tuple=(1,2,3,4,55,6,7,89,10)
tuple._1//取值
tuple._2
tuple._8
声明参数类型后加*
def union(s:Int*)={
var sum=0
for (i:Int<-s){
sum+=i
}
sum
}
print(union(1,2,3,4,56,7))
lazy懒加载
只有调用时候在会被加载,一般使用在消耗内存/CPU的时候使用。
lazy val sum=10 >sum:Int=<lazy> sum >res0:Int=10
异常处理
例如:
var n =33 try{if (n/2==0) n else {throw new RuntimeException("sorry")} }catch {case e:Exception=>print("The exption is :"+e.getMessage)}
数组Array
Array默认是不可变的,如果需要则用可变的ArrayBuffer。
val array=new Array[String](3)//建立存储String类型的长度为3的数组 val stringarray=Array("scala","spark")//也可以直接赋值 import scala.collection.mutable.ArrayBuffer var a=ArrayBuffer[Int]()//建立可变长数组 a+=1//加入1 a+=2//加入2 a+=(3,4)//加入3,4 a.insert(0,-1)//在0位置之前插入 a.remove(0)//去除0位置 a.remove(0,2)//从零开始去除2个 a.trimEnd(2)//去除末尾两个 a.min//取最大值 a.max//取最小值 a.sum//取和
Map
Map默认是不可变的,如果需要则用scala.collection.mutable.Map
val age=Map("rockey"->27,"spark"->5)//建立不可变map import scala.collection.mutable.Map val ages=scala.collection.mutable.Map("rockey" a50d ->27,"spark"->5)//建立可变map age.getOrElse("rockey",0)//在取值的时候如果没有该key值则会报错,使用getOrElse没有Key值就会返回0,一般都采取这种用法 ages("Hadoop")=7//可变map的运用 ages+=("a"->2 ,"b"->3) ages-="a" ages.keySet//查看所有key值 ages.values//查看所有value值
tuple元组
需要注意的是元组的index是从1开始的,并且不能改变。
例如:
val tuple=(1,2,3,4,55,6,7,89,10)
tuple._1//取值
tuple._2
tuple._8
相关文章推荐
- Windows下Scala环境搭建
- Windows7下安装Scala 2.9.2教程
- Scala代码实现列出Hadoop 文件夹下面的所有文件
- ClassNotFoundException:scala.PreDef$
- sbt创建web项目
- XML 文件解析--含Unicode字符的XML文件
- Scala 学习随笔
- Scala 小程序记录(学习期间的代码片段)
- 分分钟掌握快速排序(Java / Scala 实现)
- Scala极速入门
- Spark初探
- Scala实现REST操作
- Scala method call syntax
- 关于Scala多重继承的菱形问题
- Scala 高阶函数(high-order function)剖析
- Scala Monad Design Pattern
- Spray.io搭建Rest服务
- Spray.io搭建Rest — 支持Twirl模板并部署
- 搭建hadoop/spark集群环境
- Akka (actors) remote example