我想弄清楚这些后缀背后的真正含义是什么.换句话说,我正试图"翻译"它们.
+----+--------------+--------+
| | 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 | float | f |
| 11 | decimal | M |
+----+--------------+--------+
Run Code Online (Sandbox Code Playgroud)
我假设"f"代表 f loat.但是,例如"M"代表什么.为什么不使用"d" d ecimal?"uy"代表什么?等等...
任何人都可以"翻译"这个吗?
我只能推测,但请注意,由于af是有效的十六进制值,因此它们不能用于整数类型的后缀.这可能是bYte和deciMal得到略少于助记符的缩写的原因.同样,请注意,LF
对浮点数和lf
float32s 使用十六进制表示法有单独的(很少使用).
根据这些规则,以下所有内容都是有效的文字:
0xb // int, in hex
0xby // byte, in hex
0xabcdef // int, in hex
0xabcdeflf // float32, in hex
Run Code Online (Sandbox Code Playgroud)
我认为@kvb做了一个非常好的推测.这是两个小的补充:
您的表中有一个小问题,f
是用于float32
(也称为single
对应System.Single
)的后缀,而没有后缀的浮点变为F#float
(对应System.Double
).浮点数的命名在F#中确实很混乱,所以我认为这没有任何特殊的逻辑(只需要区分两种浮点数).
您的表格也不包括l
(用于int
).这意味着int16
,int32
和int64
具有后缀s
,l
和L
分别(这可能意味着,"短",在C的术语"长"和"长长").
我喜欢将M
小数后缀读作"钱",因为十进制最常用于表示金钱(因为它的高精度).我不确定这是前缀的原因M
,但很容易记住:-).