15分だけLua勉強した
ドットインストールとか見ながら15分だけLua勉強したのでそのメモ。
--コメント x = 10 s = "hello" print(x*2) > 20 --テーブル(連想配列)操作 t[0] = 0 t[1] = 10 t[2] = 20 t[3] = 30 t[5] = 50 for k,v in pairs(t) do print(k, v) end >1 10 >2 20 >3 30 >0 0 >5 30 for k,v in ipairs(t) do --ipairsに注意 print(k, v) end >1 10 >2 20 >3 30 --なんでこんなことになるのかよくわからない --テーブルは1から始まるっぽい --連番じゃないとそれ以降は捨てるっぽい print("hello " .. "world") --文字列連結は.. --制御構文 i = 10 if i~= 10 then -- ~= 否定 print("i not 10") elseif i == 10 then print("i is 10") else print("i is idk") end --繰返し for i=0, 10 --, 増加分指定(オプション print(i)--breakをどうはさめばいいのかわからない、エラーになる… end --関数 --なんで関数の最後にreturn置いてるにも関わらずendが必要なの… function func_name(i, j, k) return i*j, j*k end print(func_name(1,2,3)) >2 6 i, j = func_name(1,2,3) print(i, j) >2 6 --可変数引数 function f(i, ...) print(i) print(...) end f(1,2,3) >1 >2 3 --無名関数 f = function(i) print(i) end f("hello") >hello --コルーチン関数 function func() coroutine.yield "1回目の値を返す" coroutine.yield "2回目の値を返す" return "最終の値を返す" end c = coroutine.wrap(func)-- コルーチン関数はwrapしないと動かない print(c()) print(c()) print(c()) print(c()) -- エラー
感想。
breakどこに置けばいいの…。
end多過ぎ、冗長過ぎ、辛みある。
functionとか長い。とにかく冗長。
複数の値を返せるの良い。可変長引数も使い易い。
あと
i=10
i==10
ってやったらTrue返して欲しいなぁとか細々と意に沿わない。
15分勉強した感じだとPythonでええやんという感じになってる。
15分で言語語るなって言われたら全くその通りなんだけど、
rubyとかFactorとかだと15分でも一目惚れ出来た気がするが、
Luaはサンプル実行してるだけで「冗長だなぁ」感が押し寄せてきて残念ながら一目惚れ出来なかった。
ドットインストールで学べる程度の範囲で一目惚れ出来ると嬉しいな。
次はSmalltalkやりたい。