[<Flags>]
type LikeMatch =
| None = 0
| Start = 1
| End = 2
| All = Start ||| End //ERROR: Unexpected identifier in union case
我也尝试使用枚举类型对成员进行限定。有没有办法在F#中做到这一点?
答案 0 :(得分:26)
正如JaredPar所说,语言不允许这样做,但F#确实有二进制文字,这样可以很容易地显示正在设置的位:
open System
[<Flags>]
type LikeMatch =
| None = 0b000000000
| Start = 0b000000001
| End = 0b000000010
| All = 0b000000011
答案 1 :(得分:10)
根据F#语言参考,没有办法做到这一点。 f#enum中=符号的右侧必须是整数文字
语法
type enum-name =
| value1 = integer-literal1
| value2 = integer-literal2