Tadotter - Eclipse RCP版 (1.1.2.v20090921) | 2009-09-21 15:19 |
Tadotter - JavaFX版 (2.0.1) | 2009-07-06 11:19 |
変数はスクリプトレベルでも(スクリプト変数)、 クラス内でも(インスタンス変数)、またブロック内でも(ローカル変数) 宣言することができます。
スクリプト変数は、(クラス定義やブロックの内側と違って)スクリプトのトップレベルで宣言される変数です。 スクリプト変数は、メンバ変数のアクセス修飾子なしにスクリプト全体から見えます。
var thing = "Thing"; class A { function getThing() : String { thing } }
アクセス修飾子を加えることなしには、スクリプト変数はそのスクリプトの外からは見えません。 もしアクセス修飾子が、スクリプトの外からスクリプト変数が見えるように追加されたら、 それらはスクリプトのメンバ変数としてアクセスされます。 変数のアクセス修飾子は、public, protected, package, public-read, そして public-initです。 アクセス修飾子の章を参照してください。
例:もしこれがスクリプトFoo.fxだとすると
public def bohr = 0.529177e-10
スクリプトNoof.fxはbohrにアクセスできます。
println(Foo.bohr)
スクリプト変数の寿命は、そのスクリプトがロードされてからプログラムの実行が終わるまでです。
インスタンス変数はクラスのトップレベルで宣言されます。 クラス(及びそのサブクラス)の宣言の中では、インタンス変数は、変数の名前を使うだけで簡単にアクセスされます。 クラスの外では、これらはメンバーであるところのオブジェクトを通してアクセスされます。
例:
def anA = A{ rat: true }; println(anA.rat); class A { var rat : Boolean; function isIt() { rat } } class B { function wellisIt() { anA.rat } }
アクセス修飾子(public, protected, package, public-read, そして public-init)はインスタンス変数の 可視性を制御します。もしアクセス修飾子が与えられていない場合は、 インスタンス変数はそのスクリプトの中でだけ見えます。
インスタンス変数の寿命は、そのクラスのインスタンスの寿命になります。
ローカル変数はブロック内で宣言され、そのブロックは関数の本体も含みます。 ローカル変数はもっとも内側のブロック内でのみ見えます。 そのスコープはブロックの全体を含み、変数宣言から下だけではありません。 メンバ変数のアクセス修飾子は、ローカル変数には適用できません。 アクセス修飾子は、ローカル変数宣言に適用されるべきではありません。
[To do: ブロック全体がスコープになるルールを説明し、例を与える。]
ローカル変数の寿命は、そのブロックがが存在する間です。
スクリプト変数とインスタンス変数と違っているのは、ローカル変数宣言と式は、 それらが型と値を持つということです。 その型は変数型であり、その値は変数の値です。
関数の引数は関数本体の中でのみ見えます。 for文のカウンタ変数(原文:induction variables)はfor文本体の中でのみ見えます。 その他の式パラメータのスコープはその式です。
それらは値を割り当ててはいけません。
関数の章を参照してください。 構文については for文と on replace句を参照してください。
[PageInfo]
LastUpdate: 2009-07-26 16:43:30, ModifiedBy: happyhills
[Permissions]
view:all, edit:login users, delete/config:members