存储固定大小的元素 数组索引从0开始
创建数组
//数组创建方式一 var a1:Array[String] = new Array[String](3) a1(0)="Jason" a1(1)="Marie" a1(2)="Jimmy" //数组创建方式二 var a2=Array("Jason","Marie","Jimmy") //数据创建方式三:区间数组 var a3=Array.range(1,10,2)数组方法:https://blog.csdn.net/zyp13781913772/article/details/81428862
可以包含不同类型的元素 最多支持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) //元组声明方式三 def mike = "Mike" -> 5 //输出scala.Tuple2 mike.getClass //将元组元素依次赋给三个变量 val(name, address, age) = tp1 println(name) println(address) println(age)def 定义 函数名(传递变量:数据类型。。。。):返回值类型 = { 最后一句是返回值 }
长度未知 通过*来表示,可以有多个参数 def showMsg2(name:String,str:String*)={ println(name) for (a<-str){ println(str) } } showMsg2("kb09","wokao","dadad") }在要传递的参数列表中 str:String* 写* 来表示有多个参数
def sum(a:Int,b:Int):Int=a+b //匿名函数 val aa=(a:Int,b:Int)=>a+b val bb=aa println(aa(1, 2)) println(bb(1, 2)) println(sum(1, 2))没有通过def定义的方式来写匿名函数
常量aa = 要传递的变量名及数据类型 ->返回值
函数作为参数进行传递 val aa=(a:Int,b:Int)=>a+b val sum2:Int =10 val sum3:(Int,Int)=>Int= (a:Int,b:Int)=> a+b println(sum3(1, 3)) def fun(a:Int,b:Int):Int=a+b def fun1(a:Int,b:Int):Int=a-b def fun2(a:Int,b:Int):Int=a*b def funTest(f:(Int,Int)=>Int,a:String):String={ val resultValue = f(1000,2000) a+resultValue } println(funTest(fun, "hello"))这里函数作为参数进行传递
//函数作为返回值 def funTest():(String,String)=>String={ def fun2(str1:String,str2:String)={ str1+"##"+str2 } fun2 } println(funTest()("aa","bb")) }这里函数作为另一个函数的返回值在: 和 = 中间的这部分
在函数体中定义一个新函数然后将这个函数返回出去