我使用F#4.0 / VS-2015
这很好用
[<Measure>] type percent
let x1 = 100<percent>
但这会更好
[<Measure>] type % // Percent
let x2 = 100<%>
[<Measure>] type € // Euro
let cost = 99.99<€>
因为%在F#中使用,所以可以使用任何其他Unicode符号。 其中一些是允许的,一些不是。
问题是,有哪些限制?
了解这一点后,对于其他应用程序,可以预先过滤搜索Unicode符号。
允许
[<Measure>] type ᚖ // U+1696
[<Measure>] type ᕎ // U+154E
[<Measure>] type ඖ // U+0D96
let x3 = 0<ඖ>
let x4 = 50<ᕎ>
不允许
[<Measure>] type (%) // error FS0010: Unexpected prefix operator in type name. Expected infix operator, quote symbol or other token.
[<Measure>] type % // error FS0010: Unexpected symbol '{0} in type name
[<Measure>] type (﹪) // error FS0010: Unexpected character '﹪' in type name. Expected infix operator, quote symbol or other token.
[<Measure>] type ﹪ // error FS0010: Unexpected character '﹪' in type name
[<Measure>] type ﹪ // ﹪ U+FE6A
[<Measure>] type ٪ // ٪ U+066A
[<Measure>] type % // % U+0025
[<Measure>] type % // % U+FF05
[<Measure>] type ‰ // ‰ U+2030 promille
[<Measure>] type € // € U+20AC
[<Measure>] type ≷ // ≷ U+2277
[<Measure>] type _%
答案 0 :(得分:4)
因此,如果您浏览规范,则度量类型必须以
开头ident-start-char:letter-char或“_”
其中letter-char来自以下unicode类之一:
'\ Lu''\ Ll''\ Lt''\ Lm''\ Lo''\ Nl'
我实际上没有检查过你的角色是否在这些课程中,但我认为一般的想法是应该允许看起来像字母的东西。