【问题标题】:Assignment operator cannot be used in if statements?if语句中不能使用赋值运算符?
【发布时间】:2014-03-28 14:08:30
【问题描述】:

似乎在 Game Maker 8、8.1 和 Studio 中(至少)赋值运算符 = 与比较运算符 == 相同。例如,这些行做同样的事情:

if (a=b) {}
if (a==b) {}

这个功能是为了对新用户友好吗?我应该继续使用== 还是切换到=?还是没有区别?

附:像= 一样,递增之类的东西仍然适用于==

if a=b++{} //b is still incremented, but a does not change

【问题讨论】:

    标签: if-statement comparison-operators game-maker


    【解决方案1】:

    如 GameMaker 帮助文件中所述,此功能是以前版本遗留下来的。

    “但是,这是旧 GameMaker 版本的遗留问题,您应该使用 == 运算符进行比较,使用 = 进行分配。”

    比较时最好使用==,因为这是它的设计目的。此外,如果您要转向其他语言,如 PHP,使用 = 运算符实际上会初始化 if 语句中的变量。如果您习惯使用单个 = 运算符,这可能会让您非常头疼。

    【讨论】:

    • 还有其他语言,例如 pascal/delphi,将“=”视为比较符号,将“:=”视为赋值操作。 - 这因此反映在游戏制作者中(可以使用 := 和 = 进行分配)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 2013-07-15
    • 1970-01-01
    • 2017-03-27
    • 2013-04-30
    相关资源
    最近更新 更多