8

F# の自己識別子については、次のようになります。

type MyClass2 =
   let data = 123

   member whateverYouWant.PrintMessage() =
       printf "MyClass2 with Data %d" data

F# クラスのドキュメントには次のように書かれています。

他の .NET 言語とは異なり、自己識別子には好きな名前を付けることができます。self、Me、this などの名前に制限されません。

( F# におけるこのような柔軟な「自己識別子」の利点は何ですか?という質問への回答では、これが有用である可能性について説明しています。)

私の質問は、おそらく、自己識別子に名前を付ける非公式の基準はありますか? つまり、規範的な規則はないかもしれませんが、 F# プログラマーが実際に行っていることを説明する規則はありますか? this? x? self?

アップデート

これはクローズされる可能性があるように見えますが、他の質問への答えは、私がすでに知っている複数のオプションを示しているだけなので、ほとんど答えにはなりません。私はコンセンサスを探しています。また、その質問は 2009 年に行われたもので、その時点ではコンセンサスが得られていなかった可能性がありますが、現在はコンセンサスが得られている可能性があります。

また興味深いのは、Don Syme 著のExpert F# 3.0という本では、例で一貫した自己識別子を使用していません。むしろ、単一文字の自己識別子、特に文字を好むようxです。

4

3 に答える 3

7
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# で最も使用されている名前の 1 つについては、自己識別子は自明である必要があります。

member __.Name自己識別子が不要な場合に書くことを選択する人もいます。それらは通常、未使用の識別子がないことを確認するのと同じ人です ( で簡単に実行できます--warnon:1182)。他の人は、これは奇妙だとか、矛盾につながると言っています。好きなものを選んでください。

于 2013-03-13T07:11:47.447 に答える
3

いくつかのオプションがあります。多くの場合、 orthisと書きます。おそらく最も説明的ではないと思いますが、かなり頻繁に使用されています-おそらくそれは間違っています! 別の良いオプションは、クラスの名前を参照する識別子 (または など) を使用することです。これは非常に有益です。selfxxpersonpoint

type Point(x:float, y:float) =
  member point.X = x
  member point.Y = y

しかし、自己参照を実際に使用していない場合は、少し冗長に感じることに同意します。したがって、使用__することは理にかなっています。普通(シングル)だけでは使えないのは少し残念だと思います_

したがって、要約すると、推奨される標準はおそらく 1 つではありませんが、一般的なパターンがいくつかあります。

于 2013-03-14T09:04:50.233 に答える
1

別の答え(お好みであれば):

いいえ、自己識別子の標準命名規則はありません。プロジェクトごとに 1 つを選択し、それを適用する必要があります。

于 2013-03-13T20:17:46.257 に答える