我实际上是kotlin语言的新手,所以这可能是基本问题,但我找不到合理的答案 .
根据我读过的资源,(Int) - > T是一个函数类型,它接受一个整数参数并返回任何东西;这就是为什么,我定义了这样的函数:
fun square( arg : Int ) : Int{
return (arg * arg)
}
之后,我尝试将此函数的引用传递给kotlin中Array类的构造函数的第二个参数 . 此尝试会导致错误 . 该错误表示存在类型不匹配 .
var arr : Array<Int> = Array(5, square)
我无法理解为什么我会遇到这样的错误 . 有人能解释一下吗?
1 回答
你快到了,试试这个:
Function references使用
::
运算符 .你也可以使用lambdas,感觉更加惯用:
并不是说这等同于以下内容,因为当lambda是传递给函数的最后一个参数时,它可以从括号中取出: