1. localあるなしの違い
本記事では、変数を宣言するときによく使用する「local」に着目します。この「local」がある場合とない場合での違いをみてみます。
2. 使用する機能
・Script
・local
3. 手順
まず、Roblox Studioを起動します。今回は、テンプレート「Baseplate」を使用します。
Workspaceの子要素にScriptを追加します。
Scriptに以下のコードを記入します。以下のコードの関数の中に「local」を使用して、ローカル変数であるtestLocalを宣言しています。そのtestLocalを関数外から呼び出すことを試みてみます。
local function testLocalScope()
local testLocal = "変数"
end
testLocalScope()
print(testLocal)
上記コードの簡単な解説は以下となります。
- local function testLocalScope()
testLocalScope というローカル関数を定義しています。 - local testLocal = “変数”
文字列 “変数” を値に持つローカル変数 testLocal を、関数 testLocalScope の内部に作成しています。この変数は関数の外部からはアクセスできません。 - testLocalScope()
testLocalScope 関数を呼び出しています。 - print(testLocal)
testLocal 変数を出力しようと試みていますが、この変数は関数 testLocalScope の内部でのみ定義されているため、ここでは nil が発生します。これは、testLocal がその関数のスコープ外では存在しないからです。
nilとなりました。コード解説でも述べたように、ローカル変数であるtestLocalは、その関数内でしか定義されていないため、関数外から呼び出そうとすると、空を意味するnilが出力されます。
では、「local」を消去して変数を宣言してみます。
local function testLocalScope()
testLocal = "変数"
end
testLocalScope()
print(testLocal)
ローカル変数ではなく、グローバル変数として宣言されたため、関数外からでも変数testLocalにアクセスできました。
ちなみに、関数を呼び出していない状態で、その関数内にあるグローバル変数を出力することはできません。
local function testLocalScope()
testLocal = "変数"
end
--testLocalScope()
print(testLocal)
この記事を通じて、ローカル変数とグローバル変数の違いを学びました。具体的には、ローカル変数はその関数内でのみ使用でき、一方、グローバル変数はそのスクリプト全体から使用することができます。
コメント