1
nikenidage1 11 天前
那个啥,你得先说语言,很多语言的枚举类型就不允许为 null
|
2
drymonfidelia OP @nikenidage1 我用过的几个语言好像都可以为 null ,像 C#
|
3
geelaw 11 天前 via iPhone 2
@drymonfidelia #2 那你可能要精进一下 C#,在 C# 里面枚举的取值范围就是底层整数类型的范围,所以不存在 null 。
设 T : struct, Enum 那么 T? 即 Nullable<T> 当然可以取 null ,另外 obejct 、ValueType 、IComparable 、IConvertible 、IFormattable 、ISpanFormattable 类型的变量都可以用来存储 boxed enum 的引用或 null 。 |
4
msg7086 11 天前
null 一般指的是值缺失。None 是值存在但语义为空。
|
5
xuld 11 天前
快速回答:无论什么时候,都首选定义一个 None
如果可为 null ,则表示需要一个指针位来存储枚举,增加复杂度 |
6
h1298841903 11 天前
定义 None 、UNINIT (未初始化)、IDLE (闲置状态),都可以代表 null ,总之,应该有个确定的状态,这样你画状态转换图的时候,也比较好画。
|
7
zizon 11 天前
既然你说到维护了,那么如果语法上允许为 null,那么就一定会有人用 null.
至于效率的问题,不到有问题的时候都不是问题. 出问题的时候无论怎样都是设计问题. |