多くのサンプルScalaコードには、「xs」という名前の文字列とコレクションが含まれています。なぜxs?
例:
var xs = List(1,2,3)
val xs = "abc"
多くのサンプルScalaコードには、「xs」という名前の文字列とコレクションが含まれています。なぜxs?
例:
var xs = List(1,2,3)
val xs = "abc"
基本的に、それはLISPに由来する命名規則です。その背後にある理論的根拠は次のとおりです。
@Ken Bloomが指摘しているようにxs
、xの複数形であることが意図されているという事実とは別に、 Scalaのような言語がどのように構造化されているかに注意することも重要です。はリンクリストとして構造化されており、コンテナには最初のアイテムとリストの残りの部分への参照があります。List
List
::
演算子(consと呼ばれる)は、次のようにリストを作成します。
42 :: 69 :: 613 :: Nil
パターンマッチングに表示される::
場合は、次のようにリストを最初の項目と残りの項目に抽出します。
List(42, 69, 613) match {
case x :: xs => x
case Nil => 0
}
xs
このパターンはどこにでも現れるので、読者はそれが「リストの残りの部分」を意味すると推測できます。
この名前は関数型プログラミングのチュートリアルでリスト変数に使用されていますが、文字列には使用されていません(文字列が文字のリストと見なされる場合を除く)。
これは基本的に、例で使用されているダミーの名前です。は複数形であるためx
、リストが。であるときにスカラー変数に名前を付けることができます。本番コードでは、よりわかりやすい名前を付けることをお勧めします。xs
xs
x
これは、パターンがリストと一致するコードでも見られる場合があります。例(OCaml):
let rec len l =
match l with
| [] -> 0
| x :: xs -> 1 + len xs
よりわかりやすい名前のペアがありますがfirst :: rest
、これは単なる例です。