[英]In Scala, how to define a variable that is a function with a tuple argument
[英]How to define scala type for no argument function?
这有效
def func(f: => Int) = f
这不应该(例如在课堂内)
type EmptyFunct = => Int
要么
type EmptyFunct = (=> Int)
Scala版本2.9两个问题:
=> Int不是没有参数的函数,它是一个Int参数,通过名称传递约定。 (当然,这是相当好的一点,因为它通过传递没有参数的函数来实现)。
没有参数的函数写成() => Int
。 你可以type EmptyFunct = () => Int
。
它不是一种类型。 在func里面,f将被输入为Int。 类型()=> Int的参数不会。
def func(f: => Int) = f *2
func(:=> Int)Int
但
def func(f: () => Int) : Int = f*2
error:value *不是()=> Int的成员
你应该使用Function0
在第一种情况下,它不起作用,因为您声明一个非参数函数,但因为您指示该参数是按名称调用的。
我没有在方法中看到太多意义,返回一个int,没有参数调用。 要么它返回一个常量,所以你可以使用常量,或者它会使用var?
让我们来看看var:
var k = 10
val fi = List (() => k * 2, () => k - 2)
val n = fi(0)
n.apply
k = 11
n.apply
结果是20,然后是22。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.