scala(2) 变长参数 lazy 异常处理 数组Array Map tuple

可变长参数
声明参数类型后加*
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"->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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值