我记得我能够做类似的事情
red, green, blue, foo, bar: INTEGER is unique
在埃菲尔铁塔,它已经过时了吗?是什么原因?什么会代替它?
答案 0 :(得分:1)
唯一常量属性现在已过时。正在开发一种新的类型安全机制。同时,最接近的选择是使用常量属性:
red: INTEGER = 1
green: INTEGER = 2
blue: INTEGER = 3
foo: INTEGER = 4
bar: INTEGER = 5
当然,也可以自己设计类型安全的变体:
expanded class QUX inherit
ANY
redefine
default_create
end
feature {NONE} -- Creation
default_create do make (1) end
feature {QUX} -- Initialization
make (value: like item) do item := value end
feature -- Enumeration
red: QUX
once
Result.make (1)
ensure
instance_free: class
end
green: QUX
once
Result.make (2)
ensure
instance_free: class
end
feature -- Access
item: INTEGER
end
然后在您要编写的代码中:
x: QUX
...
x := {QUX}.red
if x = {QUX}.green then ...
注意。您可能需要安装EiffelStudio 18.07或更高版本才能使用类功能。