1.Unit类似void,函数没有返回值就用Unit代替
2.参数args
// Say hello to the first argument
println("Hello, "+ args(0)+"!")
以上两行保存成scala文件helloarg.scala,然后执行命令:
$scala helloarg.scala apple
apple就作为参数被打印出来。
3.scala不用分号去分隔声明,分号可以加也可以不加
4.函数的定义图
5.functionliteral
函数编程的一个主要特征是that functions are first class constructs (不知道如何翻译过来)。
看下面一个简单的例子:
args.foreach(arg=> println(arg))
args调用foreach函数,同时往这个函数中传入一个function literal(类似函数的东西,又能当作参数传递),参数是arg,函数体是println(arg)。也可以声明传入函数参数的数据类型:
args.foreach((arg:String) => println(arg))
如果传入的函数仅有一个参数和一个声明,整个函数声明可以简写为:
args.foreach(println)
function literal的语法特征如下:
前面是参数,后面跟着向右的箭头=>,然后指向函数体。
6.for循环
for (arg<- args)
println(arg)
这里arg是val不是var,虽然好像每次都感觉像赋一个新的值到arg,但是它确实是val。每次都创建一个新的val 的arg。