*Luaリファレンス 要注意点 ~クロージャ~ [#s3686e51]

-クロージャとは~
クロージャを知らない人にとってクロージャは理解しずらいものである。
しかし、実は、クラスの類似品と考えてよい。~
~
例えば、
#sh(csharp){{
class Counter {
    int iCurCnt;
    Counter(int iDefaultCnt) {
        iCurCunt = iDefaultCnt;
    }

    IncCounter(int iIncValue = 1) {
        iCurCnt += iIncValue;
    }
}
}}
「ネストされた関数」を、「スコープ外から参照するいずこかに存在する変数のライフサイクル」が生存する限りにおいては、
   「該当のネストされた関数が参照するローカル変数」もまた、「元来のスコープを超えて生存する」、そのような機構、と考えておけば破綻しない。)

**関数の定義は2種類 [#mb15204a]
-functionを前に置く書き方(シンタックスシュガー)
#sh(lua){{
function foo (x)
    return 2*x
end
}}

-無名関数を変数に代入する書き方
#sh(lua){{
foo = function (x) return 2*x end
}}
と、ほぼ同じ意味。~


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS