F#中是否有自标识符的标准命名约定?

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.

Ram*_*nir 7

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)的人.其他人说这很奇怪或者导致不一致 - 选择你喜欢的东西.

  • 这基本上就是我采用的方法 - 当我不需要标识符时使用`__.Foo`,当我这样做时使用`this.Foo`. (3认同)