这是我的代码片段:
let targetMeasure (usesPercent:Nullable<byte>) value =
match usesPercent.Value with
| 0 -> sprintf "$%A" value
| _ -> sprintf "%A%%" value
尝试将“usesPercent”与0匹配,但0必须是一个字节。这总是让我在F#中感到困惑。我超越了可以为空的东西,但那时的值不是同一类型。我该如何解决这个问题?
答案 0 :(得分:6)
您可以通过编写0uy
来创建字节文字。如果你写一些无效的(例如0z
),F#Interactive会打印一个(漂亮的)完整的数字文字列表。然后你得到:
样本格式包括4,0x4,0b0100,4L,4UL,4u,4s,4us,4y,4uy,4.0,4.0f,4I。
对于整数,解码非常简单u
代表无符号和y
,s
,(无),L
代表8位,16位,32位和分别为64位。
答案 1 :(得分:3)
let targetMeasure (usesPercent:Nullable<byte>) value =
match usesPercent.Value with
| 0uy -> sprintf "$%A" value
| _ -> sprintf "%A%%" value