Luaリファレンス 要注意点 ~型~†
型は全部で8種†
0は真†
10進数での文字コード表記†
printf("aaa\xAbbb"); -- 多くの言語は文字コードを16進数表記
これが改行と同様という言語は多いが、
print("aaa\10bbb"); -- Lua言語は文字コードを10進数で書く
と珍しい表記をする。
ヒアドキュメント†
local page = [[
<html>
<body>
</body>
</html>
]]
このように[[
と
]]で挟まれた文字列の最初の文字の改行は自動的に削除される。
文字列型と数値型の暗黙の変換†
文字列の\0と長さ†
local a = "Hello"
print(#a) --> 5
print("Good\0bye") --> \0というNULL相当の文字コードを入れ込むことも出来る。表示上はGoodとなる。
print(#"Good\0bye") --> 8。
\0が途中で出現したからといって、残りのバイトが切り捨てられたりはしない。
要するに文字列としてprintfする際には、文字列表示上は\0まで表示されることとなるが、
データとしては\0の後も全て持っている。
浮動小数の整数部分を得る。x % 1†
local x = 3.32
print(x % 1) --> 0.32 となる。
少数第2位以下を得るなら
local x = 3.4566
print(x % 0.01) --> 0.006599999999997 となる。
整数や浮動小数点のズレ(比較ズレ、加算ズレ)†
Luaの数値は全てdouble型なので、数値の精度を保つのに難がある。
数値の加算や減算をした結果がdouble型で表現可能な精度を超えると、
「整数であっても」ズレが発生する。
但し、一般的なLuaの利用シーンでは、気にする必要はほとんどない。