サンプルコードval asc = Array(5, { i -> (i * i).toString() })
を読みました。なぜvar iはKotlinで0で始まるのですか?
結果は["0", "1", "4", "9", "16"]
です。私は式の中で0で始まるvarはKotlinで{ i -> (i * i).toString() }
サンプルコードval asc = Array(5, { i -> (i * i).toString() })
を読みました。なぜvar iはKotlinで0で始まるのですか?
結果は["0", "1", "4", "9", "16"]
です。私は式の中で0で始まるvarはKotlinで{ 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)
をしたがって{ i -> (i * i).toString() }
0
での引数の結果として0
と、アレイの0
で開始インデックスをとります。
任意の疑いがあります場合は、このコードでそれを確認することができます。
fun main(args: Array<String>) {
val func: (Int) -> (String) = { i -> (i * i).toString() }
println(func(0))
}
配列は(C、C++、C#の、およびJavaを含む多くの言語のように)すべてがゼロベースのアレイを使用する理由
は、しかし、私は非常に奇妙です。これは、最初の要素が0の位置にあることを意味します。
(配列は1から始まります)。
その配列のインデックスを..常に関心のうち0 –
から始める、あなたは他の言語でプログラミングするのですか?私の場合、コトリンは奇妙な最初の選択のように思えます。 – Bathsheba
@Bathsheba、Kotlinはなぜ奇妙な第一選択であると感じるのだろうか? – innov8