您的位置:首页 > 其它

scala 几个函数小例子

2017-12-19 16:13 197 查看
后续补充

/**
* Created by dengy on 2017/12/18.
*/
object grammarPractise {
def main(args: Array[String]) {

//=======================================================//
def fun(str1: String, str2: String) = {
str1 + "\t" + str2
}

println( fun("spark", "hadoop") ) //spark	hadoop

val add = (str1:String, str2:String)=> str1+ "\t" +str2

println(add("spark", "hadoop"))  //spark	hadoop

def g( f:(String,String)=>String ,str1:String,str2:String)={
val line = f(str1,str2)
println(line)
}

g(add, "Spark", "Hadoop")  //spark	hadoop

//这个确实一中 调用的办法, 是 传 函数的一种办法。三个结果都是: Spark	Hadoop
//=======================================================//

// 变量的 集合中的变量
val list = List.range(1,10)
println( list.mkString("[","\t","]"))  //[1	2	3	4	5	6	7	8	9]

val list2 = list.filter( ( x:Int )=> x%2==0 )
println( list2.mkString("[","\t","]") ) //[2	4	6	8]

val list3 = list.filter(x=>x%2==0)
println(list3.mkString("[","\t","]"))  //[2	4	6	8]

val list4 = list.filter(_%2==0)
println(list4.mkString("[","\t","]"))  //[2	4	6	8]

//=======================================================//

// 传递函数
val sayHello:()=> Unit = () =>println("hello")

def g1(f:()=>Unit,num:Int)={
for(i<-1 to num)f()
}
g1(sayHello,5)  // 5个  hello

//=======================================================//

//传递String参数
def saySomething(str1:String)= (str2:String) => println( str1+"\t"+str2 )

val aa:String=>Unit=saySomething("spark")

aa("hadoop")  //spark	hadoop

//=======================================================//

var standardAge = 20
val aa1 = (age:Int)=> age>=standardAge //这个最后是个boolean型
println(aa1(22)) //true

def g2( f:Int=>Boolean, age:Int):Unit={  //注意这里的写法
println(  f(age)  )
}
g2(aa1,22) //true
standardAge = 23
g2(aa1,22) //false   ,注意,这里调用的aa1中standardAge,已经被改了,所以为false

//=======================================================//
//调用函数,实现加法
var more = 10
val x=(one:Int)=>one+more
println(x(20)) //30
more=20
println(x(20)) //40

//=======================================================//

//foreache 累加
var sum = 0
val array = Array(10,20,30)
array.foreach(f=> sum=sum+f )
println(sum)

//=======================================================//

}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: