- Unit函数的定义:
def foo()={println("hi")}
等号可以省略:
def foo(){println("hi")}
- update方法:
x(y) = z
相当于:
x.update(y, z)
- 单参数方法的调用:
xObject yMethod zParameter
相当于:
xObject.yMethod(zParameter)
- case类的中置表示法
h::t
等价于
::(h,t)
可以试着执行一下:
scala> `::`(0,List(1))
res11: scala.collection.immutable.::[Int] = List(0, 1)
同理,
x~y~z
等价于
~(~(x,y),z)
一些匿名类、函数参数的写法:
匿名函数
val square=(x:Double)=>Math.pow(x,2)
可以写成:
val square=Math.pow(_:Double,2)
匿名类
class DoubleTrans {def foo=(_:Int)*2}
val p1 = new DoubleTrans()
p1 foo 2
可以简写成:
val p2 = new {def foo=(_:Int)*2}
p2.foo(100)
- 匿名子类
scala> val p3=new DoubleTrans(){override def foo=(_:Int)*3}
p3: DoubleTrans = $anon$1@56636a77
scala> p3 foo 4
res9: Int = 12
scala> p3.isInstanceOf[DoubleTrans]
res10: Boolean = true