标签:
object MyObject
{
def main(args:Array[String]
{
Println("Hello world")
}
}
Object MyObject extends APP {println("hello world"}
var str = "hello"
val greeting:String = "hello"
Import scala.math._ (import scala开头的包时,可以省略scala前缀如: import math._)
def abs(x:Double) = if (x>=0) x else -x
def fac(n:Int) = if(n<0) 1 else n * fac(n-1)
Note: 变长参数在函数中是一个list,但是在函数调用时候不能传入一个list。
apply方法
可以理解为对()操作符的重载。下面是两种不同的使用场景
1. 在class中定义apply方法
class Test { def apply(i:Int) = println(i) } var t = new Test t(2)
t(2)将会输出2
2. 用作伴生对象.
class Test { def apply(i:Int) = println(i) } Object Test { def apply() = new Test } val t = Test() t(2)
用作伴生对象可以简化我们对于class对象创建的代码冗余。 从根本上来说,伴生对象的生成并不是什么高级语法。 val t= Test() 可以看作是对object中的apply方法的调用,这里的Test指的是object Test。 apply方法返回了一个class Test对象。 所以对象t是一个class Test对象。
标签:
原文地址:http://www.cnblogs.com/shexinwei/p/4644129.html