【问题标题】:Safely to declare and initialize a global variable in a monticello package?在 monticello 包中安全地声明和初始化全局变量?
【发布时间】:2015-03-22 06:03:35
【问题描述】:

如何安全地声明和初始化 Monticello 包使用的全局变量,以便在加载过程中不会出错?正在做

Smalltalk at: #VarName put: varValue

在其中一个包类的类端“初始化”方法中是否足够? (在这种情况下,我不希望使用共享池。)

【问题讨论】:

    标签: smalltalk pharo squeak monticello


    【解决方案1】:

    是的,这就够了。另一种选择是使用延迟初始化:

    ^ VarName ifNil: [ VarName := value ]
    

    我很好奇,你为什么使用全局变量?根据我的经验,只有极少数情况下不使用全局变量是无法解决的,我认为在大多数情况下,使用全局变量暗示了糟糕的设计。

    【讨论】:

    • 延迟初始化会起作用,但变量仍然是未声明的。所以无论如何,要得到一个合适的全局变量,你必须声明它。
    猜你喜欢
    • 1970-01-01
    • 2020-10-30
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多