[kotlinシリーズ](s 1_1)コードスタイル、符号化仕様
5541 ワード
kotlinコードスタイル、符号化仕様
前に書く
CSDNがブログを書いたのは久しぶりで、とても懐かしいです.何も言わないで、Google I/O大会でkotlinを公式言語に指定するにつれて、kotlinの大ヒットの勢いは止められない.kotlinは出たばかりの言語ではない.覚えていないのは2011年に登場したのだろう.ここ数ヶ月、いくつかのコミュニティの貢献に伴って、kotlinに関する学習資料もますます多くなって、本シリーズの多くは転載して、あるいは一定の修正or注釈を加えて、gitの上でグループ内で共有したいと思っていましたが、実際には珍しくなくて、面倒を恐れて、直接ここに書いておきました.
仕事をよくしようとすると,まずその器を利する.
私は初めて言語を勉強するとき、最も簡単なエディタ、コマンドラインコンパイルで実行することにあまり賛成しません.実際には効率が大幅に低下します.また、文法を覚えようとすると文法の助けに影響されません.言い換えれば、文法を心を込めて覚えなければ、一日中sublinetextで叩いても何の役にも立たないということです.
私は今macOSに開発、学習を移行しているので、windowsの環境はもう注目しません.
まずコンパイル環境を構成する必要があります
コマンドラインを使用したリファレンスのコンパイル
IntelliJ IDEAを使うことをお勧めします.最終的にAndroidのためにも(結局Androidはまだkotlinで書き換えていないので、文法を勉強するにはAndroid studioを使う必要はありません)IntelliJ IDEAを使うために参考にしてください.
コードスタイル、コード仕様
主な参考はこちら
ネーミングスタイル
ほとんどの場合、アルパカ法を使用してクラスを命名(下線を含む名前を避ける)します.クラス:アルパカ法クラスのメンバー変数、メンバーメソッド:アルパカ法
定数:ハンガリー法
インデント
4つのスペースのインデント
コロンの左右のスペース
を選択します.
Lambda式
Lambda式では、カッコの左右にスペースを付け、パラメータとコード体を区切る矢印の左右にもスペースを付けます.Lambda表現はできるだけカッコに書かないでください
ネストされていない短いlambda式では、明示的に宣言されたパラメータ名の代わりに、既定のパラメータitを使用することが望ましい.ネストされたパラメータ付きlambda式では、パラメータは常に明示的に宣言されるべきです.
クラスヘッダのフォーマット
いくつかのパラメータのクラスを1行に書くことができます.
長いクラスヘッダを持つクラスは、各プライマリ構造関数パラメータがインデントされた別の行に配置されるようにフォーマットする必要があります.また、右かっこは別の行にする必要があります.継承を使用する場合は、スーパークラスコンストラクション関数呼び出しまたは実装インタフェースのリストをカッコと同じ行に配置します.
複数のインタフェースについては、まずスーパークラス構造関数呼び出しを配置し、各インタフェースは異なる行に配置する必要があります.
コンストラクション関数パラメータでは、通常のインデントまたは連続インデント(通常の2倍のインデント)を使用できます.
Unit
関数がUnitタイプを返す場合、その戻りタイプは省略します.
関数か属性か
多くの場合、パラメータのない関数は読み取り専用のプロパティと交換できます.意味が近いにもかかわらず、取捨選択のスタイルの約束もある.下位アルゴリズムは、関数ではなく属性を優先的に使用します.異常なし O(1)複雑度 安価な計算(またはキャッシュの最初の実行) 異なる呼び出しは同じ結果 を返す.
コメント行注記 ブロック注釈 doc類注釈 一般的に、コードの1行は80または100または120を選択し、従来の行の注釈は右側の注釈領域に配置されていますが、整理整頓には多くの手間がかかり、IDEの設定に狂う可能性があります.実はこのようにみんなも受け入れることができます:
一般的には空行を加えて読書障害を減らすことができます
コントロール・セグメントへのコメント:一般的には、次のようにします.
しかし、このコメントは長い場合があります.
もちろん、複数行のコメントはブロックコメントの使用を推奨します.
メソッド(特に開示されている)、重要なプロパティについては、docコメントを使用してプロパティについて、一般的に1行に縮小する必要があります.
メソッドについて:メソッドの説明、パラメータの説明、説明、さらにはバージョンを返す
前に書く
CSDNがブログを書いたのは久しぶりで、とても懐かしいです.何も言わないで、Google I/O大会でkotlinを公式言語に指定するにつれて、kotlinの大ヒットの勢いは止められない.kotlinは出たばかりの言語ではない.覚えていないのは2011年に登場したのだろう.ここ数ヶ月、いくつかのコミュニティの貢献に伴って、kotlinに関する学習資料もますます多くなって、本シリーズの多くは転載して、あるいは一定の修正or注釈を加えて、gitの上でグループ内で共有したいと思っていましたが、実際には珍しくなくて、面倒を恐れて、直接ここに書いておきました.
仕事をよくしようとすると,まずその器を利する.
私は初めて言語を勉強するとき、最も簡単なエディタ、コマンドラインコンパイルで実行することにあまり賛成しません.実際には効率が大幅に低下します.また、文法を覚えようとすると文法の助けに影響されません.言い換えれば、文法を心を込めて覚えなければ、一日中sublinetextで叩いても何の役にも立たないということです.
私は今macOSに開発、学習を移行しているので、windowsの環境はもう注目しません.
まずコンパイル環境を構成する必要があります
コマンドラインを使用したリファレンスのコンパイル
IntelliJ IDEAを使うことをお勧めします.最終的にAndroidのためにも(結局Androidはまだkotlinで書き換えていないので、文法を勉強するにはAndroid studioを使う必要はありません)IntelliJ IDEAを使うために参考にしてください.
コードスタイル、コード仕様
主な参考はこちら
ネーミングスタイル
ほとんどの場合、アルパカ法を使用してクラスを命名(下線を含む名前を避ける)します.クラス:アルパカ法クラスのメンバー変数、メンバーメソッド:アルパカ法
定数:ハンガリー法
インデント
4つのスペースのインデント
コロンの左右のスペース
を選択します.
interface Foo<out T : Any> : Bar {
fun foo(a: Int): T
}
Lambda式
Lambda式では、カッコの左右にスペースを付け、パラメータとコード体を区切る矢印の左右にもスペースを付けます.Lambda表現はできるだけカッコに書かないでください
list.filter { it > 10 }.map { element -> element * 2 }
ネストされていない短いlambda式では、明示的に宣言されたパラメータ名の代わりに、既定のパラメータitを使用することが望ましい.ネストされたパラメータ付きlambda式では、パラメータは常に明示的に宣言されるべきです.
クラスヘッダのフォーマット
いくつかのパラメータのクラスを1行に書くことができます.
class Person(id: Int, name: String)
長いクラスヘッダを持つクラスは、各プライマリ構造関数パラメータがインデントされた別の行に配置されるようにフォーマットする必要があります.また、右かっこは別の行にする必要があります.継承を使用する場合は、スーパークラスコンストラクション関数呼び出しまたは実装インタフェースのリストをカッコと同じ行に配置します.
class Person(
id: Int,
name: String,
surname: String
) : Human(id, name) {
// ……
}
複数のインタフェースについては、まずスーパークラス構造関数呼び出しを配置し、各インタフェースは異なる行に配置する必要があります.
class Person(
id: Int,
name: String,
surname: String
) : Human(id, name),
KotlinMaker {
// ……
}
コンストラクション関数パラメータでは、通常のインデントまたは連続インデント(通常の2倍のインデント)を使用できます.
Unit
関数がUnitタイプを返す場合、その戻りタイプは省略します.
fun foo() { // ": Unit"
}
関数か属性か
多くの場合、パラメータのない関数は読み取り専用のプロパティと交換できます.意味が近いにもかかわらず、取捨選択のスタイルの約束もある.下位アルゴリズムは、関数ではなく属性を優先的に使用します.
コメント
//
/* */
/** */
fun foo() {
// find the rootView instance.
View rootView = findViewById(R.id.root);
// find the submit button instance.
Button btnSubmit = (Button) findViewById(R.id.btn_submit);
}
一般的には空行を加えて読書障害を減らすことができます
コントロール・セグメントへのコメント:一般的には、次のようにします.
if (expression) { //
println("balabala")
} else {
、、、
}
しかし、このコメントは長い場合があります.
if (expression) {
// , 、 , ,
println("balabala")
} else {
、、、
}
もちろん、複数行のコメントはブロックコメントの使用を推奨します.
メソッド(特に開示されている)、重要なプロパティについては、docコメントを使用してプロパティについて、一般的に1行に縮小する必要があります.
/** */
var mSettingSharePref: SharedPreference
メソッドについて:メソッドの説明、パラメータの説明、説明、さらにはバージョンを返す