代入演算子

提供: AutoHotkey Wiki
移動: 案内検索

実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 | キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル | レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト

代入演算子[編集]

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

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 := 10
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