クラス要素の順序

クラス・オブジェクト・トレイトのメンバは全て,空行を挟んで宣言するべきです。varvalだけがこのルールに対する例外になります。これらの要素は,scaladocのあるフィールドが1つも無く,全てのフィールドがシンプルな(最大で20文字程度で,1行のもの)定義で収まる場合を除いて,空行を挟まずに宣言します。

class Foo {
  val bar = 42
  val baz = "Daniel"

  def doSomething() { ... }

  def add(x: Int, y: Int) = x + y
}

スコープの中で,フィールドはメソッドの前にあるべきです。その例外は,valの定義がブロックになっている(2つ以上の式を持っている)と,「メソッドのような」操作(e.g. Listの長さを操作する)を持つ場合です。そのような場合,valは,ファイルの後ろの方の,論理的な順序が意味する通りに配置します。このルールはvallazy valのみ適用されます!varの定義がファイル中に散在すると,その変化を辿るのが極めて困難になります。

前のトピックへ

宣言

次のトピックへ

メソッド

このページ

別のフォーマット

貢献