scala入门之函数定义

如何写scala函数,如下:

scala入门之函数定义

函数的定义以def开始。然后是函数名,本例中是max,跟着是括号里带有冒号分隔的参数列表。函数的每个参数都必须带有前缀冒号的类型标注因为scala编译器无法推断函数的参数类型。本例中,名叫max的函数带有两个参数,x和y,都是Int类型。在max参数列表的括号之后你会看到另一个“: Int”类型标注。这是max函数的结果类型(result type)定义。跟在函数结果类型之后的是一个等号和一对包含了函数体的花括号
有时候scala编译器需要函数结果类型的定义。比方说,如果函数是递归的,那么函数结果类型就必须被明确地说明。然而在max的例子里,即使不写结果类型编译器也能够推断它(注:尽管如此,就算编译器不需要,显示说明函数结果类型也经常是个好主意,这种类型标注可以使代码便于阅读)。同样,如果函数仅包含一个语句,那么连花括号都可以选择不写。如下:

scala入门之函数定义

以下是即不带参数也不返回有用结果的函数定义:

函数greet()定义之后,解释器输出返回greet: ()Unit。“greet”当然是函数名,空白的括号说明函数不带参数。Unit是greet的结果类型,指的是函数没有有效的返回值。scala的Unit类型比较类似于Java的void类型,而且实际上Java里返回void的方法都会被映射为返回Unit的scala方法。因此结果类型为Unit的方法,并非是为了得到返回值,而是为了其他的运行效果
最后,如果想要离开解释器,输入 :quit 或者:q

你可能感兴趣的:(scala)