Kotlinコードスタイル約定

1775 ワード

コード約定
公式ドキュメント
本文はKotlin言語の現在の符号化スタイルを含む.
ネーミングスタイル
質問がある場合は、Javaコード規則をデフォルトで使用します.たとえば、次のようにします.
  • はアルパカの命名法を用い、名称に下線
  • を用いることを避ける.
  • タイプ名大文字で始まる
  • メソッドとプロパティは、小文字で始まる
  • です.
  • 4スペースで
  • インデント
  • 共通の方法は、説明文書
  • を備えるべきである.
    コロン
    コロンがタイプとスーパータイプを区切っている場合、コロンの前にスペースがあります.コロンがインスタンスとタイプを区切るとき、コロンの前にスペースはありません.
    interface Foo : Bar {
        fun foo(a: Int): T
    }
    

    Lambdas
    Lambda式では、カッコの周囲とパラメータを分割する矢印の周囲にスペースを使用します.可能であれば、lambdaは括弧の外に倍に渡さなければならない.
    list.filter { it > 10 }.map { element -> element * 2 }  
    

    短くてネストされていないlambdasでは、パラメータを明確に宣言するのではなく、itの規則を使用することを推奨します.パラメータを持つネストlambdasでは、パラメータは常に明確に宣言する必要があります.
    クラスヘッダのフォーマット
    いくつかのパラメータのクラスを1行に書くことができます
    class Person(id: Int, name: String)
    

    長いヘッダを持つクラスは、各マスター構造パラメータが同じインデントを持つ個別の行にあるようにフォーマットする必要があります.また、右かっこは新しい行にする必要があります.継承を使用する場合は、親コンストラクション関数の呼び出しまたはインタフェースのリストは、右カッコと同じ行にある必要があります.
    class Person(
        id: Int,
        name: String,
        surname: String
    ) : Human(id, name) {
        // ...
    }
    

    複数のインタフェースの場合、親コンストラクション関数は最初に配置され、各インタフェースは1行に個別に書く必要があります.
    class Person(
        id: Int,
        name: String,
        surname: String
    ) : Human(id, name),
        KotlinMaker {
            //...
    }
    

    コンストラクション関数のパラメータは、通常のインデントまたは連続インデント(通常のインデントの2倍)を使用できます.
    ユニットUnit関数がUnitを返す場合、戻り値のタイプは省略できます.
    fun foo() { // ": Unit"     
    
    }
    

    関数VS属性
    場合によっては、パラメータのない関数は読み取り専用プロパティと交換できる場合があります.意味は似ていますが、いくつかのスタイルの約束はそのうちの1つに傾いています.
    基本アルゴリズムでは、メソッドではなく属性に傾いています.
  • エラーを投げ出さない
  • は、O(1)の複雑さ
  • を有する.
  • 計算が容易
  • は、呼び出し結果と同じ
  • を返す.