34

多くのサンプルScalaコードには、「xs」という名前の文字列とコレクションが含まれています。なぜxs?

例:

var xs = List(1,2,3)
val xs = "abc"
4

4 に答える 4

48

基本的に、それはLISPに由来する命名規則です。その背後にある理論的根拠は次のとおりです。

  1. Xは一般的なプレースホルダー名です。
  2. XSはXと発音されます。つまり、「多くのX」です。
于 2010-10-14T22:24:32.433 に答える
31

xsの複数形ですx

于 2010-10-14T22:22:51.357 に答える
17

@Ken Bloomが指摘しているようにxs、xの複数形であることが意図されているという事実とは別に、 Scalaのような言語がどのように構造化されているかに注意することも重要です。はリンクリストとして構造化されており、コンテナには最初のアイテムとリストの残りの部分への参照があります。ListList

代替テキスト

::演算子(consと呼ばれる)は、次のようにリストを作成します。

42 :: 69 :: 613 :: Nil

パターンマッチングに表示される::場合は、次のようにリストを最初の項目と残りの項目に抽出します。

List(42, 69, 613) match {
  case x :: xs => x
  case Nil => 0
}

xsこのパターンはどこにでも現れるので、読者はそれが「リストの残りの部分」を意味すると推測できます。

于 2010-10-14T22:37:30.610 に答える
8

この名前は関数型プログラミングのチュートリアルでリスト変数に使用されていますが、文字列には使用されていません(文字列が文字のリストと見なされる場合を除く)。

これは基本的に、例で使用されているダミーの名前です。は複数形であるためx、リストが。であるときにスカラー変数に名前を付けることができます。本番コードでは、よりわかりやすい名前を付けることをお勧めします。xsxsx

これは、パターンがリストと一致するコードでも見られる場合があります。例(OCaml):

let rec len l =
  match l with
  | [] -> 0
  | x :: xs -> 1 + len xs

よりわかりやすい名前のペアがありますがfirst :: rest、これは単なる例です。

于 2010-10-14T22:23:36.303 に答える