学好Scala的开山之作-函数篇(1)

it2023-03-01  77

一、Scala的数组、元组、集合

1.数组

存储固定大小的元素数组索引从0开始 var a2=Array("Jason","Marie","Jimmy") println(a2(0)) //Jason

2.元组

可以包含不同类型的元素最多支持22个元素 (Tuple1~Tuple22)使用下划线“_"访问元素,“_1"表示第一个元素 //元组声明方式一 var tp1 = ("Mike", "123 ABC street", 58) println(tp1._1) println(tp1._2) println(tp1._3) //迭代元组 tp1.productIterator.foreach{ i =>println("Value = " + i )} //元组声明方式二 var tp2 = new Tuple3("Mike", "123 ABC street", 58)

注意:这里的Tuple3,字母是固定字段,数字3代表后面有3个元组

//元组声明方式三 def mike="mike"->5->6->7 println(mike) println(mike.getClass) 输出结果是: (((mike,5),6),7) class scala.Tuple2 //元组声明方式四,将元组赋值给三个变量 val tp1 =("zhangsan","andemn",19) val (name,address,age)=tp1 println(name) println(address) println(age)

3.集合

Set:ListSet、HashSet、TreeSet

Map:ListMap、HashMap、TreeMap

Seq:Vector、String、Range、List、Stack、Stream、Queue

常用集合:

二、Scala函数

函数是Scala的中的重点核心

1.定义一个函数

格式: def 函数名(形式参数名:数据类型):(返回值的数据类型)={ 函数体:你自定义的函数需求 (return)表达式 } 函数main方法里的调用: 函数名(实参参数名) 列题如下:字符串判断,有a输出1,有B输出2,其他0

我们也可以通过指定参数名字,传递参数值

def showMsg(name:String,age:Int):Unit={ println("hello:"+name+"age:"+age) } showMsg("kb09",5) showMsg(age=18,name="zhangsan")

注意:当我们的参数长度不确定的时候,用*来表示,可以传入多个参数

def showMsg2(name:String,s:String*):Unit={ println(name) for(str<-s){ println(str) } } showMsg2("kb09","龙人","鳄鱼","狮子")

函数名后面加下划线可以直接调用该定义好的函数

val f1=showMsg2_

定义一个有两个参数的函数

val aa:(Int,Int)=>Int=(a:Int,b:Int)=>a+b val aa: ((Int,Int)=>Int)=(a:Int,b:Int)=>a+b//上述函数的变形,一个意思

2.定义一个匿名函数

格式:(参数名:数据类型,…)=>{函数体}

也可以给他们命名一个名称,通过添加这个(var name=)

val aa= (a:Int,b:Int)=>a+b //这叫匿名函数

如果函数体包括多条语句,应使用“{}”包含

最新回复(0)