*Lua c-style cp932 リファレンス[#w0855ffe]

**原則 [#i28aacb9]
-通常のutf8でのソースコードに対する振る舞いは、普通のluaと同じ。
-通常のLuaの文法も使うことが出来る。

**c-style [#h67879a7]
- c-styleの{}が使える
#sh(lua){{
    -- c-like lua
    function add(x,y) {
        return x + y
    }

    //階乗
    function factorial_while(n) {
        //whileで階乗してみる
        sum = 1
        i = 1
        while(i <= n) {
           sum = sum * i
           i = i + 1
        }
        return sum
    }

    //階乗
    function factorial_for(n) {
        //forで階乗してみる
        //すまないが、 lua のforを 完全にc-likeにしきれていないんだ
        sum = 1
        for (i = 1 , n , 1 ) { //or for (i = 1 , n ) {
           sum = sum * i;
        }
        return sum
    }
}}
(※これらの機能は[[rti7743:https://github.com/rti7743/rtilabs/tree/master/files/asobiba/lua]]氏のものがベースです。)

- c-styleの!=が使える
#sh(lua){{
if ( 1 != 0 ) then
    print("not equal")
end
}}

- テーブルの中で普通に関数を定義可能。暗黙のselfを持つメソッドとなる。~
~
通常、luaのメソッド定義スタイルは
#sh(lua){{
tbl = {}
function tbl:my_method(x, y) end
}}
もしくは
#sh(lua){{
tbl = {}
function tbl:my_method(x, y) end
}}
ですが、

**cp932 [#h67879a7]
- 特徴
--文字列やコメントに日本語(cp932)が使えます。
--非常に限定的な修正のため、Luaの移植性に影響を与えません。
--2バイト文字の判定方法はcp932

-注意点
--関数や変数の名前には日本語(SJIS)が使えません。
--エラーメッセージなどは日本語化していません。
--EUC,UTF-8の場合、オリジナルのLuaと同じ動作となります。
-~
#sh(lua){{
print("表")
print("アイウ")
}}
(※cp932系の変更は「[[はむ!:http://hammm.dw.land.to/lua/]]」氏のものをベースとしています。)

**compatible [#v98393d1]
-Lua 5.2では、
#sh(lua){{
print(table.unpack{1,2,3})
}}
というのが正しい記述となるが、
#sh(lua){{
print(unpack{1,2,3})
}}
というように、Lua5.1の記述も動作する、等

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