scala基础入门(二)

it2023-02-20  89

一、scala数组

存储固定大小的元素 数组索引从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

 

二、scala元组

可以包含不同类型的元素 最多支持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)

三、scala函数

函数定义和使用 def value(a:Int,b:Int,fuhao:String)= { if (fuhao.equals("+")) a+b else if (fuhao.equals("-")) a-b else if (fuhao.equals("*")) a*b else if (fuhao.equals("/")) a/b } println(value(10, 20,"+")) def showMsg(name:String,age:Int)={ println(s"Hello:$name age:$age") } showMsg("yekun",20) showMsg(age = 11,name = "wokao")

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")) }

这里函数作为另一个函数的返回值在: 和 = 中间的这部分

在函数体中定义一个新函数然后将这个函数返回出去

最新回复(0)