scala中的函数类型

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

var x: () => Unit =null

以上定义表示一个空的函数。准确的说就是一个未定义具体实现的函数类型。上面的这个声明的意思是,有一个对象x,它是一个函数类型,这个函数无参,无返回值。

var x: (String,String)=>String=null

同理,这个声明表示,x对象所代表的函数是有参数的并返回一个String。

要注意函数类型的表示和函数字面值的表述是不一致的。在函数字面值表述中=>指向的是函数体,而在函数类型声明的表述中=>指向的是返回值。

它的含义其实是指这个函数x是一个虚的函数。

这个类型可以在其他的地方被实现,一般来说,我们应该采用call by value的方式通过传值来在某个方法中实现这个定义的函数类型。

scala中的函数类型其实是DSL的基础。

转载于:https://my.oschina.net/clarkhill/blog/37873

你可能感兴趣的:(scala中的函数类型)