キャスト(cast)
Luaは文字列と数値を実行時に自動的に変換してくれる。-- number -> string c = 10 + 20; String.print( c ); Number -> 文字列演算 -> String string -> 数値演算 -> Number nr = nr + "1"; nr += "35"; -- これはダメらしい.文字列と数値の結合ができる-- "number = 10" "number = " .. 10WARNING bool は .. で文字列に cast できない?str = str .. 10POINT C では float -> int では自動的に少数部が切り捨てられる. Lua では数値という概念しかないので, 切り捨てられることはない. -- math.abs() の型 chk version を用意する.function myabs(n) if(type(n) ~= "number" ) then print(n); error("must be a number prm"); end print(math.abs(n)); end myabs( "10" );WARNING だたし等号をとるときは, 同じ型である必要がある。if "107" == "107" then print ( "true" ) end代入演算子 [ = ] の左側にかける[ 式 ]を [ 左辺値 ] という
loadstring("print(_VERSION)")() loadstring("print(_VERSION)") -- 戻り値は関数. POINT 戻り値として使用する関数を, 高階関数という. table を返して, すぐに利用する.function test() arr = { 1, 2, 3 }; return arr; end do test()[2] = 10; print( test()[3] ); end