代入演算子

変数に式の計算結果を代入

Var := Expression
Var op= Expression

Parameters

Var代入先の変数名。「ArrayName%Index%」のように、変数の参照を含むと、変数の内容を展開した変数名が使われる。
op 「+」「-」「*」「/」「//」「.」「|」「&」「^」「>>」「<<」のいずれかの演算子。
Expression式。式の説明参照。

Remarks

「:=」では、Expressionを評価した結果の値がVarで指定した変数に代入される。

var:=x+y+z

「+=」や「*=」のような形式では、Varで指定した変数とExpressionをopで指定した演算子で演算した結果がVar自身に代入される。
上記の例では、xの値は11になる。
代入式全体の値は、代入後の変数の値になる。

x:=1
MsgBox,% x+=1

代入演算子が連続している場合、一番右のものから順に計算される。
下記の例では、まずcに1が足され4になり、bにcが足され6になり、aにbが足されて7になる。

a:=1,b:=2,c:=3
a+=b+=c+=1
MsgBox,%a%,%b%,%c%

代入式自体は、代入先の変数を表すものとしても扱われるため、それを更に代入式の左辺に使用したり、「&」演算子でアドレスを参照したり、関数のByRef付き引数に使うことも出来る。
下記の例では、まずxに1が加算し、更に2を掛け、func()関数に参照引数として渡し、関数内で10を加算する。

func(ByRef arg){
    arg+=10
}
x:=1
func((x+=1)*=2)
MsgBox,% x

「+=」「-=」「*=」「/=」が一番左の演算子だった場合、それぞれEnvAdd, EnvSub, EnvMult, EnvDivコマンドの別表記とみなされるため、他の場合と異なった動作になる。
VarやExpressionが数値として正しくなかった場合、「0」であるとみなされる。(通常は、演算結果が空の文字列になる)
「+=」「-=」では、日付時刻の演算が可能になる。
「/=」では、VarとExpressionが共に整数値の場合、結果の小数点以下が切り捨てられて整数値になってしまう。(通常の「/」演算子は、小数点以下を切り捨てない)

Related

式の説明, IF (式), SetEnv, EnvSet, EnvAdd, EnvSub, EnvMult, EnvDiv, If, 配列

Example(s)

Var := 3
Var := "literal string"
Var := Price * (1 - Discount/100)

Finished := not Done or A_Index > 100
if not Finished
{
	FileAppend, %NewText%`n, %TargetFile%
	return
}
else
	ExitApp