这个问题在这里已经有了答案:
Should I use, this, self or something else for self identifiers in type definitions?
(2 个回答)
8年前关闭。
关于 F# 自我标识符的如下:
type MyClass2 =
let data = 123
member whateverYouWant.PrintMessage() =
printf "MyClass2 with Data %d" data
F# class documentation说:
Unlike in other .NET languages, you can name the self identifier however you want; you are not restricted to names such as self, Me, or this.
(问题 What are the benefits of such flexible "self-identifiers" in F#? 的答案解释了这可能的用处。)
我的问题是,是否有关于如何命名自我标识符的非官方标准?也就是说,虽然可能没有规定性约定,但是否有关于 F# 程序员在野外做什么的描述性约定?
this
? x
? self
?更新
看起来这可能会关闭,但另一个问题的答案几乎不是答案,因为它只是显示了我已经知道的多个选项。我正在寻求共识。此外,这个问题是在 2009 年提出的,当时可能没有达成共识,而现在可能有共识。
同样有趣的是这本书 Expert F# 3.0由 Don Syme 撰写的示例中没有使用一致的自我标识。相反,它似乎更喜欢单字母自我标识符,尤其是字母
x
.
最佳答案
type MyClass2 as self =
let data = 123
let privatePrintMessage() = self.PrintMessage()
member this.PrintMessage() =
printf "MyClass2 with Data %d" data
有些人用
member x.Name
,但这是错误的,因为 x
没有解释它是什么,对于 F# 中最常用的名称之一 - 自我标识符应该是不言自明的!也有人选择写
member __.Name
当不需要自我标识符时。那些通常是确保没有未使用的标识符的人(使用 --warnon:1182
很容易做到)。其他人说这很奇怪或者会导致不一致——选择你喜欢的。
关于f# - F# 中的自标识符是否有标准命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15378914/