我读了一个示例代码val asc = Array(5, { i -> (i * i).toString() }).
结果是["0", "1", "4", "9", "16"].
但我很奇怪为什么var我在表达式中以0开头 { i -> (i * i).toString() }
您正在使用的构造函数如下所示:
/**
* Creates a new array with the specified [size], where each element is calculated by calling the specified
* [init] function. The [init] function returns an array element given its index.
*/
public inline constructor(size: Int, init: (Int) -> T)
Run Code Online (Sandbox Code Playgroud)
这需要该索引开始于0为一个数组,因而{ i -> (i * i).toString() }与0如在争论中的结果0.
如果有任何疑问,您可以使用此代码进行检查:
fun main(args: Array<String>) {
val func: (Int) -> (String) = { i -> (i * i).toString() }
println(func(0))
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |