Adr*_*ian 33 scala naming-conventions identifier
许多示例Scala代码包含名为"xs"的字符串和集合.为什么选择xs?
例子:
var xs = List(1,2,3)
val xs = "abc"
Run Code Online (Sandbox Code Playgroud)
kei*_*ter 43
基本上它是起源于LISP的命名约定.其背后的理由是:
Eug*_*ota 16
除了@Ken Bloom指出xs的x的复数这个事实之外,它还与注意像Scala结构的语言有关.结构化为链接列表,其中容器具有对第一个项目和列表其余部分的引用.ListList

该::运营商(称为缺点)建设名单如下:
42 :: 69 :: 613 :: Nil
Run Code Online (Sandbox Code Playgroud)
该::模式匹配时出现还提取到列表中的第一项和列表的其余部分如下:
List(42, 69, 613) match {
case x :: xs => x
case Nil => 0
}
Run Code Online (Sandbox Code Playgroud)
由于这种模式出现在任何地方,读者可以推断出这xs意味着"列表的其余部分".
我在函数式编程教程中看到过这个名字用于列表变量,但不是字符串(除非字符串被认为是字符列表).
它基本上是一个在例子中使用的虚名.您可以x在列表中命名标量变量xs,因为xs它是复数形式x.在生产代码中,最好有一个更具描述性的名称.
您可能还会在代码中看到此模式与列表匹配.例如(在OCaml中):
let rec len l =
match l with
| [] -> 0
| x :: xs -> 1 + len xs
Run Code Online (Sandbox Code Playgroud)
一对更具描述性的名称可能是first :: rest,但这只是一个例子.
| 归档时间: |
|
| 查看次数: |
3426 次 |
| 最近记录: |