If statement if语句中不能使用赋值运算符?

If statement if语句中不能使用赋值运算符?,if-statement,comparison-operators,game-maker,If Statement,Comparison Operators,Game Maker,似乎在Game Maker 8、8.1和Studio(至少)中,赋值运算符=与比较运算符=相同。例如,这些行执行相同的操作: if (a=b) {} if (a==b) {} 此功能是否意味着对新用户友好?我应该继续使用=还是切换到=?还是说这没什么区别 另外,像递增这样的操作仍然适用于=,类似于=: if a=b++{} //b is still incremented, but a does not change 此功能是GameMaker帮助文件中所述的以前版本遗留下来的 但是,这是旧

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

if (a=b) {}
if (a==b) {}
此功能是否意味着对新用户友好?我应该继续使用
=
还是切换到
=
?还是说这没什么区别

另外,像递增这样的操作仍然适用于
=
,类似于
=

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

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

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


比较时,最好使用
==
,因为这正是它的设计目的。另外,如果您要使用另一种语言(如PHP),那么使用
=
操作符实际上会初始化if语句中的变量。如果您习惯于使用单个
=
运算符,这可能会让您非常头疼。

但是其他语言,如pascal/delphi,将“=”视为比较符号,将“=”视为赋值操作。-因此,这在gamemaker中得到了反映(可以使用:=和=来分配任务)。