将常量声明为可以重新定义的 class 的最佳方法是什么
What is the best way to declare a constant into a class that can be redefined
在埃菲尔铁塔中,什么是拥有可以重新定义的常量的最佳方式?
- class A => 颜色:STRING = "绿色"
- 颜色 B 继承 A => 不能重新定义
虽然有一个函数只有 returns“绿色”或“蓝色”需要再次创建字符串,性能问题还是无关紧要?
据我了解,onces 不能重新声明...
一旦功能可以重新定义为任何其他功能。例子是
class A feature
color: STRING once Result := "green" end
end
class B inherit A redefine color end feature
color: STRING once Result := "blue" end
end
此外,清单字符串本身可以定义为一次:
class A feature
color: STRING do Result := once "green" end
end
class B inherit A redefine color end feature
color: STRING do Result := once "blue" end
end
两种情况下的行为是相同的,因此您甚至可以混合使用两种变体。性能可能有所不同,但仅略有不同。在这两种情况下,每次调用都不会创建新字符串。
在埃菲尔铁塔中,什么是拥有可以重新定义的常量的最佳方式?
- class A => 颜色:STRING = "绿色"
- 颜色 B 继承 A => 不能重新定义
虽然有一个函数只有 returns“绿色”或“蓝色”需要再次创建字符串,性能问题还是无关紧要?
据我了解,onces 不能重新声明...
一旦功能可以重新定义为任何其他功能。例子是
class A feature
color: STRING once Result := "green" end
end
class B inherit A redefine color end feature
color: STRING once Result := "blue" end
end
此外,清单字符串本身可以定义为一次:
class A feature
color: STRING do Result := once "green" end
end
class B inherit A redefine color end feature
color: STRING do Result := once "blue" end
end
两种情况下的行为是相同的,因此您甚至可以混合使用两种变体。性能可能有所不同,但仅略有不同。在这两种情况下,每次调用都不会创建新字符串。