Luaプログラミング入門 > 第5章 関数 > 関数中に関数を定義する


[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

関数中に関数を定義する 応援する 

Luaでは関数内に関数を定義することも可能です.

function func(x)
        local function get()
                return x
        end
        
        local function add(value)
                x = x + value
        end
        return get, add
end

firstGetValue, firstAddValue = func(10)
secondGetValue, secondAddValue = func(30)

print("first value : " .. firstGetValue() )
print("second value : " .. secondGetValue() )

firstAddValue( 15 )
secondAddValue( 20 )

print("first value : " .. firstGetValue() )
print("second value : " .. secondGetValue() )

func関数はgetとadd関数を戻り値として返しています. ここでlocalという新しいキーワードが登場しました. このlocalについては有効範囲の章で詳しく説明します. 簡単に説明しておきますと,localというキーワードを付けることで ローカル変数(またはローカル関数)を作成することができます. 要は,get関数もadd関数もfunc関数内からでしか呼び出せないと いうことです.

実行結果

first value : 10
second value : 30
first value : 25
second value : 50

[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

このサイトについて|ヘルプ|Q&A|個人情報保護|プライバシーポリシー|利用規約|コメント・トラックバック規約|削除規程|広告掲載
Copyright (c) 2005-2007 Time Intermedia Corporation