- 追加された行はこの色です。
- 削除された行はこの色です。
*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の記述も動作する、等