[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つのスペースのインデント
コロンの左右のスペース
を選択します.
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"

}

関数か属性か
多くの場合、パラメータのない関数は読み取り専用のプロパティと交換できます.意味が近いにもかかわらず、取捨選択のスタイルの約束もある.下位アルゴリズムは、関数ではなく属性を優先的に使用します.
  • 異常なし
  • O(1)複雑度
  • 安価な計算(またはキャッシュの最初の実行)
  • 異なる呼び出しは同じ結果
  • を返す.
    コメント
  • 行注記//
  • ブロック注釈/* */
  • doc類注釈/** */
  • 一般的に、コードの1行は80または100または120を選択し、従来の行の注釈は右側の注釈領域に配置されていますが、整理整頓には多くの手間がかかり、IDEの設定に狂う可能性があります.実はこのようにみんなも受け入れることができます:
    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

    メソッドについて:メソッドの説明、パラメータの説明、説明、さらにはバージョンを返す