Che.4外部重複と法規整合
多才多芸の誤ったプログラミング学習をまとめた文章です.
範囲と繰り返し
範囲クラス
コトリンは
フォワードリピート
コトリンでは、
非元のタイプの範囲にはデフォルトの
バックリピート
繰り返し文の最後の値をスキップするには、
コーナーでは、
式
値または式は
命令文
また、
範囲と繰り返し
範囲クラス
コトリンは
ranges
クラスを提供し、範囲を作成することができます.val oneToFive: IntRange = 1..5
範囲タイプは、タイプ推定を行うこともできます.val aToE = 'a'..'e'
元のタイプ以外の範囲を作成することもできます.val seekHelp: ClosedRange<String> = "hell".."help"
..
演算子には、前後の2つの値が含まれます.フォワードリピート
コトリンでは、
for
文によって特定の範囲を繰り返すことができる.for (i in 1..5) {
print("$i, ")
}
// output: 1, 2, 3, 4, 5,
for
ゲートで使用されているi
はval
なので変更できません.非元のタイプの範囲にはデフォルトの
iterator()
関数はありません.繰り返し文で使用するには、拡張関数を作成する必要があります.バックリピート
downTo()
メソッドを使用して、減少した方向を繰り返すこともできます.for (i in 5.downTo(1)) {
print("$i, ")
}
// output: 5, 4, 3, 2, 1,
中位記号を使用すると、コードをより簡潔に書くことができます.for (i in 5 downTo 1) {
print("$i, ")
}
範囲内の値をスキップ繰り返し文の最後の値をスキップするには、
until()
メソッドを使用して範囲を作成する必要があります.for (i in 1 until 5) {
print("$i, ")
}
// output: 1, 2, 3, 4,
繰り返し文では、step()
メソッドを使用して一定の単位でスキップする必要があります.for (i in 1 until 10 step 3) {
print("$i, ")
}
// output: 1, 4, 7,
繰り返し文の特定の値をスキップするには、filter()
メソッドを使用する必要があります.for (i in (1..9).filter { it % 3 == 0 || it % 5 == 0}) {
print("$i, ")
}
// output: 3, 5, 6, 9,
配列とリストの繰り返しコーナーでは、
arrayOf()
の方法でアレイを作成できます.関数で使用される値は、アレイのタイプを決定します.val array = arrayOf(1, 2, 3)
作成されたシナリオは、for
文で繰り返すことができます.for (e in array) {
print($e, ")
}
// output: 1, 2, 3,
Cottlinでは、関数で使用される値に応じて、listOf()
メソッドを使用してリストを作成できます.var list = listOf(1, 2, 3)
for (e in list) {
print($e, ")
}
// output: 1, 2, 3,
範囲内のインデックス値indices
属性も使用できます.val names = listOf("Tom", "Jerry", "Spike")
for (index in names.indices) {
println("Position of ${names.get(index)} is $index")
}
インデックスと値は、withIndex()
関数によって一度に取得することもできる.for ((index, name) in names.withIndex()) {
println("Position of $name is $index")
}
when
を使用する必要がある場合式
when
when
文は、if-else
文を単純な式に変換することができる.fun isAlive(alive: Boolean, neighbors: Int) = when {
neighbors < 2 -> false
neighbors > 3 -> false
neighbors == 3 -> true
else -> alive && neighbors == 2
}
cottlinコンパイラは、else
セクションがあるかどうか、およびすべての式入力の作成値があるかどうかを検証します.値または式は
when
に渡すことができる.fun whatToDo(dayOfWeek: String) = when (dayOfWeek) {
"Saturday" -> "Relax"
"Friday" -> "Party"
else -> "Work"
}
->
の後に{}
が現れることもでき、この場合、最後の式は条件の結果を返す.可読性の点では、->
の後に短い単一の式または関数呼び出しがあることを推奨する.したがって、{}
を関数として定義し、その関数を呼び出すことを推奨します.命令文
->
文としてwhen
を使用する場合、when
は必要ありません.fun printWhatToDo(dayOfWeek: String) {
when (dayOfWeek) {
"Saturday" -> println("Relax")
"Friday" -> println("Party")
}
}
else
と変数のスキャンまた、
when
に一致する変数をwhen
に制限することもできます.fun systemInfo(): String = when (val core = getCoreNum()) {
1 - > "1 core"
in 2..16 -> "$core cores"
else -> "$core cores!"
}
Reference
この問題について(Che.4外部重複と法規整合), 我々は、より多くの情報をここで見つけました https://velog.io/@hwi_chance/Ch.4-외부-반복과-아규먼트-매칭Ch.4-외부-반복과-아규먼트-매칭テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol