Use*_*ser 8 f# naming-conventions this self
关于F#self-identifier的用法如下:
type MyClass2 =
let data = 123
member whateverYouWant.PrintMessage() =
printf "MyClass2 with Data %d" data
Run Code Online (Sandbox Code Playgroud)
在F#类文档说:
与其他.NET语言不同,您可以根据需要命名自标识符; 你不仅限于自我,我或这个名字.
(问题的答案F#中这种灵活的"自我标识符"有什么好处?解释了这可能有用.)
我的问题是,是否有一个非官方的标准来命名自我标识符?也就是说,虽然可能没有规定性约定,但是对于F#程序员在野外做什么有描述性约定吗?this?x?self?
更新
看起来好像这可能会被关闭,但另一个问题的答案几乎不是答案,因为它只显示了我已经知道的多个选项.我正在寻求共识.此外,这个问题是在2009年提出的,当时可能没有达成共识,而现在可能有一个问题.
同样有趣的是Don Syme撰写的专家F#3.0在示例中没有使用一致的自我标识符.相反,它似乎偏爱单字母自我标识符,尤其是字母x.
type MyClass2 as self =
let data = 123
let privatePrintMessage() = self.PrintMessage()
member this.PrintMessage() =
printf "MyClass2 with Data %d" data
Run Code Online (Sandbox Code Playgroud)
有些人使用member x.Name,但这是错误的,因为x没有解释它是什么,并且对于F#中最常用的名称之一 - 自我标识符应该是不言自明的!
member __.Name当不需要自标识符时,有些人也会选择写入.那些通常是确保没有未使用的标识符(易于使用--warnon:1182)的人.其他人说这很奇怪或者导致不一致 - 选择你喜欢的东西.