キャスト(cast)


Luaは文字列と数値を実行時に自動的に変換してくれる。
-- number -> string c = 10 + 20; String.print( c ); Number -> 文字列演算 -> String string -> 数値演算 -> Number nr = nr + "1"; nr += "35"; -- これはダメらしい.
文字列と数値の結合ができる
-- "number = 10" "number = " .. 10
WARNING bool は .. で文字列に cast できない?
str = str .. 10
POINT 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