[AHK]配列のコピー(オブジェクトの値渡し)

AutoHotkeyで配列などのオブジェクトを普通に代入すると、参照渡しとなり、実体はコピーされない。

実体をコピーするには、Clone()を使う。

下記のコードをコピペして、Ctrl+Shift+aとCtrl+Shift+bを押してみると、挙動の違いが確認できる。

^+a::
	a:=[1,2,3]
	b:=a					;参照渡し
	b[2]:=5				;a[2]が書き換えられる。
	ToolTip,% a[2] b[2]	;55
return
^+b::
	a:=[1,2,3]
	b:=a.Clone()			;値渡し
	b[2]:=5
	ToolTip,% a[2] b[2]	;25
return

Objectを普通に代入すると、ポインタ渡しになってるのは注意がいりそう。

参考

関連

コメント

PAGE TOP
Ads Block Detector Powered by codehelppro.com
Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました