一緒に書く習慣を身につけましょう!「ナゲッツデイリーニュープラン・4月更新チャレンジ」に参加して15日目です。クリックしてイベントの詳細をご覧ください。
1.kotlinのforループ
- 最初
..
for (i in 0..5) {
println(i)
}
复制代码
正序
出力:0 1 2 3 4 5
、これは左閉右閉区間です
- 二番目
until
for (i in 0 until 5) {
println(i)
}
复制代码
正序
出力:0 1 2 3 4
、これは左閉右開間隔です
- 第3
downTo
for (i in 5 downTo 0) {
println(i)
}
复制代码
倒序
出力:5 4 3 2 1 0
、これは左閉右閉区間です
- 第4
step
これは、次のようなステップサイズです。
for (i in 0 until 5 step 2) {
println(i)
}
复制代码
出力:0 2 4
、ステップサイズが2に設定され、出力が2ごとであることがわかります。
- 第五中学校
zip
for((i, j) in (1..5).zip(5..10)) {
println("$i -- $j")
}
复制代码
zip
2つのパラメーターがサポートされています。出力を参照してください。
2.use
拡張機能
通常、ファイルの出力および入力ストリームからの読み取りと書き込みでは、例外を防ぐために読み取りと書き込みの完了後に出力または入力ストリームを閉じるためにメソッドを呼び出す必要がありclose
ますが、要件は要件であり、プログラム開発中に書き込みがありません。
したがって、kotlinはuser
、ストリームを閉じるのに役立つ拡張メソッドを提供します。最初に使用法を見てください。
File("").outputStream().use {
}
复制代码
使用後use
、プログラムが手動でストリームを閉じる必要はありません。use
ソースコードを見てください。
同様に、読み取り/書き込みデータベースcursor
も使用をサポートしますuse
。
3.封印されたsealed class
封印されたクラスは次のように定義されます。
sealed class Kit {
data class H(val name: String = "")
data class O(val age: Int = 0)
data class L(val show: Boolean = false)
}
复制代码
実際、封印されたクラスは抽象クラスと列挙に非常に似ていますが、抽象クラスと列挙とは大きく異なる2つの利点があります。
- クラス構造階層(抽象クラスと比較して)
抽象クラスの具象実装クラスは、パッケージ内のさまざまな場所で定義できますが、これは管理が非常に不便ですが、封印されたクラスは階層構造になっています
密封类的子类只能和密封类定义在同一个类文件中
。もちろん、kotlin1.4以降のバージョンはそれほど制限されません
- サブクラスオブジェクトは動的作成をサポートします(列挙と比較して)
Javaでシングルトンを実装する最も安全な方法は、列挙型の実装を使用することです。列挙宣言の各要素の内容は固定されており、パラメーターを外部に渡すことはできません。と
密封类的子类可以声明为object,这个效果就和枚举元素一样,也可以声明为普通的class,可以外部进行传参创建类的对象