Scala中不返回任何东西函数被称为过程。如下是语法函数
object Hello{ def printMe( ) : Unit = { println("Hello, Scala!") } }
Scala提供了一些语法的变化来调用方法。如下是调用一个方法的标准方法:spa
functionName( list of parameters )
若是函数被对象的一个实例调用使用,那么使用相似于Java点标记以下:scala
[instance.]functionName( list of parameters )
下面是一个例子用来定义,而后调用函数:对象
object Test { def main(args: Array[String]) { println( "Returned Value : " + addInt(5,7) ); } def addInt( a:Int, b:Int ) : Int = { var sum:Int = 0 sum = a + b return sum } }
一般状况下,函数的参数是传值参数;即,参数的值在它被传递给函数以前被肯定。可是,若是咱们须要编写一个接收参数不但愿立刻计算,直到调用函数内的表达式。对于这种状况,Scala提供按名称参数调用函数。it
按名称调用机制传递一个代码块给被调用者而且每次被调用方传接入参数,代码块被执行,值被计算。io
object Test { def main(args: Array[String]) { delayed(time()); } def time() = { println("Getting time in nano seconds") System.nanoTime } def delayed( t: => Long ) = { println("In delayed method") println("Param: " + t) t } }
在这里,咱们声明delayed方法,它经过=>符号变量的名称和类型,须要一个按名称调用参数。当上述代码被编译和执行时,它产生了如下结果:编译
C:/>scalac Test.scala C:/>scala Test In delayed method Getting time in nano seconds Param: 81303808765843 Getting time in nano seconds C:/>
这里,delayed打印的消息声明,该方法已被输入。接下来,delayed打印一个与其消息的值。最后delayed方法返回 t。function