scala函数定义及使用
所属分类 scala
浏览量 630
需给出所有参数的类型 返回值的类型可选 ,自动推断
递归函数 必须有 返回值类型
默认参数 命名参数 变长参数
def functionName ([list of parameters]) : [return type] = {
function body
return [expr]
}
def add1(x:Int,y:Int):Int={
return x+y
}
def add2(x:Int,y:Int)={
x+y
}
def add3(x:Int,y:Int)=x+y
def hello1():Unit={
println("hello")
}
def hello2():Unit=println("hello")
def hello3()=println("hello")
def hello4 = println("hello")
hello4 调用不能带小括号
hello1 hello2 hello3 调用可以不带小括号
def max1(x: Int, y: Int) = if (x > y) x else y
def displayInfo(name:String,age:Int=9) = println(s"name=$name,age=$age")
displayInfo("cat")
displayInfo("cat",3)
displayInfo(age=7,name="tiger")
命名参数 ,参数可以乱序
def sum(nums:Int *) = {
var s = 0
for(e <- nums) s += e
s
}
sum(1,2,3)
无返回值 Unit 过程
def sayHello(name:String) = println("hello "+name)
def sayHello2(name:String) {println("hello "+name)}
无返回值 过程 不用等号
lazy值
如果将一个变量声明为lazy,则只有在第一次使用该变量时,变量对应的表达式才会发生计算,
这种特性对特别耗时的计算操作特别有用, 打开文件进行IO,进行网络IO等
import scala.io.Source._
lazy val lines = fromFile("xxx").mkString
println(lines)
使用lazy ,文件不存在,不会报错, 只有在使用变量时才会去读取报错
val lines = fromFile("xxx").mkString
上一篇
下一篇
play scala hello world tutorial
Scala 下划线的用途
scala 匿名函数
play框架web编程实例
scala 大括号省略
scala 表达式/代码块 当参数