randomize

2014/11/03

Arma3スクリプティング講座番外:private

privateスクリプトに関する研究結果を報告します。ほんのちょっとしか実験してないけど。

1.次のスクリプトをinit.sqfに書き、実行、結果を確認する。

waitUntil {time != 0} ;

_variableA = 3 ;
_variableB = 7 ;
if (true) then {
 _variableA = 6 ;
 _variableB = 14 ;
 systemChat (format ["in if: A:%1 B:%2",_variableA,_variableB]) ;
} ;
systemChat (format ["out if: A:%1 B:%2",_variableA,_variableB]) ;

結果:
in if: A:6 B:14
out if: A:6 B:14

2.次のスクリプトをinit.sqfに書き、実行、結果を確認する。

waitUntil {time != 0} ;
private ["_variableA","_variableB"] ;

_variableA = 3 ;
_variableB = 7 ;
if (true) then {
 _variableA = 6 ;
 _variableB = 14 ;
 systemChat (format ["in if: A:%1 B:%2",_variableA,_variableB]) ;
} ;
systemChat (format ["out if: A:%1 B:%2",_variableA,_variableB]) ;

結果:
in if: A:6 B:14
out if: A:6 B:14

3.次のスクリプトをinit.sqfに書き、実行、結果を確認する。

waitUntil {time != 0} ;

_variableA = 3 ;
_variableB = 7 ;
if (true) then {
private ["_variableA","_variableB"] ;
 _variableA = 6 ;
 _variableB = 14 ;
 systemChat (format ["in if: A:%1 B:%2",_variableA,_variableB]) ;
} ;
systemChat (format ["out if: A:%1 B:%2",_variableA,_variableB]) ;

結果:
in if: A:6 B:14
out if: A:3 B:7

4.次のスクリプトをinit.sqfに書き、実行、結果を確認する。

waitUntil {time != 0} ;

_variableA = 3 ;
_variableB = 7 ;
if (true) then {
 private ["_variableA","_variableB"] ;
 _variableA = 6 ;
 _variableB = 14 ;
 systemChat (format ["in first if: A:%1 B:%2",_variableA,_variableB]) ;
} ;
if (true) then {
 _variableA = 30 ;
 _variableB = 90 ;
 systemChat (format ["in second if: A:%1 B:%2",_variableA,_variableB]) ;
} ;
systemChat (format ["out if: A:%1 B:%2",_variableA,_variableB]) ;

結果:
in first if: A:6 B:14
in second if: A:30 B:90
out if: A:30 B:90

5.次のスクリプトをinit.sqfに書き、実行、結果を確認する。

waitUntil {time != 0} ;

_variableA = 3 ;
_variableB = 7 ;
if (true) then {
 _variableA = 6 ;
 _variableB = 14 ;
 systemChat (format ["in first if: A:%1 B:%2",_variableA,_variableB]) ;
} ;
if (true) then {
 private ["_variableA","_variableB"] ;
 _variableA = 30 ;
 _variableB = 90 ;
 systemChat (format ["in second if: A:%1 B:%2",_variableA,_variableB]) ;
} ;
systemChat (format ["out if: A:%1 B:%2",_variableA,_variableB]) ;

結果:
in first if: A:6 B:14
in second if: A:30 B:90
out if: A:6 B:14

6.次のスクリプトをinit.sqfに書き、実行、結果を確認する。

waitUntil {time != 0} ;

if (true) then {
 _variableA = 6 ;
 _variableB = 14 ;
 systemChat (format ["in if: A:%1 B:%2",_variableA,_variableB]) ;
} ;
systemChat (format ["out if: A:%1 B:%2",_variableA,_variableB]) ;

結果:
in if: A:6 B:14
out if: A:any B:any(error)

7.次のスクリプトをinit.sqfに書き、実行、結果を確認する。

waitUntil {time != 0} ;

if (true) then {
 private ["_variableA","_variableB"] ;
 _variableA = 6 ;
 _variableB = 14 ;
 systemChat (format ["in if: A:%1 B:%2",_variableA,_variableB]) ;
} ;
systemChat (format ["out if: A:%1 B:%2",_variableA,_variableB]) ;

結果:
in if: A:6 B:14
out if: A:any B:any(error)
結論:
本当は薄々気づいていたんだけど、ようやく意味が分かりました。privateスクリプトはそのスクリプト内でのみ効果を発揮し、その内部で変更されたデータは外には出さないということです。

0 件のコメント :

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。