8

これらの接尾辞の背後にある本当の意味は何かを理解しようとしています. 言い換えれば、私はそれらを「翻訳」しようとしています。

+----+--------------+--------+
|    |     Type     | Suffix |
+----+--------------+--------+
|  1 | byte         | uy     |
|  2 | sbyte        | y      |
|  3 | int16        | s      |
|  4 | uint16       | us     |
|  5 | int, int32   |        |
|  6 | uint, uint32 | u      |
|  7 | int64        | L      |
|  8 | uint64       | UL     |
|  9 | float        |        |
| 10 | float32      | f      | (edited, thanks Thomas)
| 11 | decimal      | M      |
+----+--------------+--------+

たとえば、「f」は f loatを表すと仮定します。しかし、たとえば「M」は何を表していますか。10 進数に「 d」を使用しないのはなぜですか? 「uy」は何の略ですか?などなど...

誰でもこれを「翻訳」できますか?

4

2 に答える 2

9

@kvb は本当に良い推測をしたと思います。以下に 2 つのマイナーな追加を示します。

  • 表には小さな問題が 1 つあります。接尾辞のない浮動小数点は F# (に対応) になりますfが、接尾辞は( に対応するとfloat32も呼ばれます) に使用されます。float の命名は F# では非常に混乱しているため、これには特別なロジックはないと思います (2 種類の float を区別する必要があるだけです)。singleSystem.SinglefloatSystem.Double

  • あなたの表にも含まれていませんl(これは に使用されintます)。これは、int16int32およびにそれぞれint64接尾辞slおよびがあることを意味しLます (これはおそらく、C 用語で「短い」、「長い」、および「長い」を意味します)。

  • 私は、10 進数の接尾辞を「お金」と読むのが好きMです。なぜなら、10 進数はお金を表すために最もよく使われるからです (精度が高いため)。これが接頭辞が である理由かどうかはわかりませんがM、覚えやすいです:-)。

于 2013-02-07T20:22:57.417 に答える
9

推測することしかできませんが、 af は有効な 16 進数値であるため、整数型のサフィックスには使用できないことに注意してください。これがおそらく、byte と deciMal の省略形がやや簡略化されている理由です。同様に、float で 16 進表記を使用するための別の (非常にめったに使用されない) サフィックスがあることに注意してください。floatLFlffloat32s です。

これらの規則により、次のすべてが有効なリテラルです。

0xb  // int, in hex
0xby // byte, in hex
0xabcdef // int, in hex
0xabcdeflf // float32, in hex
于 2013-02-07T19:52:00.980 に答える