在以下代码段中,(F:=> T)是什么意思?
def func1[T](arg1: Int, arg2: String)(F: => T): func2[T]
由于
答案 0 :(得分:2)
F
是参数名称; => T
表示它是按名称参数。它基本上等同于() => T
带有一些语法糖:
调用此方法时,参数的类型为T
,并会自动转换为() => T
:
func1[String](0, x)(x + x) ===> func1[String](0, x)(() => x + x)
实施此方法时,F
的每次使用都会变为F()
。因此,每次都会重新计算T
类型的值。
显然,这在以下两种情况之一中很有用:
如果可能不需要F
;
如果F
返回的值可能会在不同的调用之间发生变化。