RGSS基本講座(5)
概要
- 変数とは
- ローカル変数
- グローバル変数
- クラス変数
- インスタンス変数
- 定数
変数とは
変数とはオブジェクトにつける「名前」のことです。オブジェクトを入れる「箱」という表現をすることもあります。
RPGツクールのイベントコマンドで使われている変数とは別物です。
オブジェクトに名前をつけることを「代入する」といいます。
変数はそのスコープ(値の有効範囲)によって4つに分類されます。
そして、それぞれの名前の付け方にルールがあります。
ローカル変数
メソッド内などで一時的に使われる変数をローカル変数といいます。
値の有効範囲はメソッド内だけなので、別のメソッドで使うとそれぞれ別の変数として扱われます。
変数名は必ず先頭に「小文字のアルファベットもしくはアンダーバー”_”」を使わなければなりません。2文字目以降は「アルファベット・アンダーバー・数字」を使うことができます。
また、スクリプトエディタ内で青文字で表示されている英単語(begin,end等)は「予約語」とよばれ、基本的にローカル変数の名前として利用することはできません。
- 例
- width
- height
- _x
- _y
- foo123
- 間違い例
- 123foo
- Width
- HEIGHT
グローバル変数
プログラム全体で有効な変数をグローバル変数といいます。プリセットのRGSSではゲームデータやキャラクターの情報などをグローバル変数で管理しています。
変数名は先頭に必ず"$"をつけます。2文字目以降はローカル変数と同じです。予約語等の制限はありません。
- 例
- $data_actors
- $game_party
- $game_variables
グローバル変数は有効範囲が広いので、多用するとプログラムが複雑になります。
クラス変数
クラス単位で管理する変数です。
クラス内に定義します。特別な手続きがないとクラス外からは見れません。プリセットのRGSSでは一切使われていません。
正直使い方が思いつきません。
変数名は先頭に必ず"@@"をつけます。2文字目以降はローカル変数と同じです。予約語等の制限はありません。
- 例
- @@foo
- @@bar123
- @@_baz
インスタンス変数
オブジェクトが管理する変数です。オブジェクトが存在する限り値が保持されます。
クラス内に定義します。特別な手続きがないとクラス外からは見れません。
ローカル変数と同じくらいよく使います。
変数名は先頭に必ず"@"をつけます。2文字目以降はローカル変数と同じです。予約語等の制限はありません。
クラス変数と似ていますが、インスタンス変数は@が1つです。
- 例
- @savefile_windows
- @help_window
定数
変数は再代入が可能ですが、定数は再代入ができません。一度代入したらそのままです。
一般的に、素材系のRGSSで多用されています。
変数名は必ず先頭に「大文字のアルファベット」を使わなければなりません。2文字目以降は「アルファベット・アンダーバー・数字」を使うことができます。
- 例
- FOO
- BAR
- BAZ
このほかにも、「擬似変数」という一癖も二癖もあるような変数もありますが、今はスルーします。
では、また次回。
コメント
コメントの投稿
トラックバック
http://rgss.blog26.fc2.com/tb.php/8-2d2357c6
この記事にトラックバックする(FC2ブログユーザー)
i`ヽ ,r‐'ァ
`ヽ:: ::´
ヽ ヽ , -‐--、 / /
ヽ \ I:::::::I_ _ / /┌────────────
ヽ ヽ i,(;;;ノI、;;;)l ,,/ , ' <1、2、3、フゥーーーーッ!
ヽ ` ー 、.,,ゝ´ヮ`,ノュ_, - ' r' └────────────
` 、_ /::: `山'::::: /
ヽ:::::::::::|::::::::"",r‐'
〉::::::::|::::::::::¨/
/;;;;;;;/;;;;;;;;;;/
/;;;;;;;/:::::::::::《
<;;;;;;;《:::::::::::::ヽ ))
/ ヽI,r''"""^~ヽ
/ ,/ ヽ ヽ
……思いついてしまっただけですスミマセnうわやめtこふぉpぎd!!