🐈
Luaで詰まったこと
随時更新
文字列
print([[Hello
World!
こんにちは世界
]])
ifをpass
Pythonとかでいうpassがluaにはない。
空っぽにしても大丈夫。
Lua
if() then
end
それが気持ち悪い場合はdo end
を置いとくのでも良い。
Lua
if () then
do
end
end
Lua5.2とかならセミコロンが使える
Lua5.2
if() then
;
end
for周り
変動する変数を上限にするならwhileを使え
C++のfor気分でループ上限に変数を使いたかった
c++
for(int i = 0; i < limit; i++){
fufaufaufaufaufa
}
limitの部分の数値がループ中に変化する場合はLuaではうまくいかなかった。最初の数値が採用されてしまう?
Lua
for i = 1, limit do
fufaufaufaufaufaend
forではなく、whileを使えば解決
Lua
while i < limit do
fufaufaufaufaufa
end
functionの中にfunction
以下みたいなことができる。
lcoal fucntioin a()
local fucntion b()
end
end
functionの呼び出し順
directory , file , filepathを扱いたい
モジュールを作りたい、モジュールとしてファイルに分割したい
require()
下記のようなpathからの相対pathでluaのファイルまで辿り着ければ良さそう。
local json = require("00_folder/dkjson")
. :の挙動
sort
table.sort(table, sortfunc)
みたいな感じでsortできるが、
複数条件でのsortの仕方は以下のようにやる
以下だったら基本はcolorでsortしたくて、colorが一緒の時は名前順にするみたいな処理をしたい時、は
if()で分けてあげると良い。
local function nameSortFuncColor_and_name( a, b )
if(a.clip_color == b.clip_color)then
return a.file_name:lower() < b.file_name:lower()
else
return a.clip_color:lower() < b.clip_color:lower()
end
end
table.sort(mytable, nameSortFuncColor_and_name)
Cと連携
error
attempt to perform arithmetic on local 'variable_a' (a nil value)
Discussion