備忘録するきっかけ
LuaにもC#のように+=で繋ぐ「+演算子」がある、と思っていたら無かった。
連結方法
Luaで文字列連結をするには、以下二つしかない
-
..
演算子による連結 - string.format()を使用する連結
..
演算子による連結
+=
のように既存の文字列に追加したい場合はこうなる。
スマートに見えない... ただ、知らなくても読めるので、これで十分なのかもしれない。+=
はエゴなのかも
local hello = "hello"
local hello = hello .. " word"
print(hello)
=> hello word
..
演算子による連結によるはまりポイント
文字列に数値を連結させたい場合、普通にこう書いたところエラーになった。
local price = 100
local priceStr = "price "..price
print(priceStr)
=> エラー
Luaでは数値を文字列と自動的に連結できないらしい。連結するにはいちいちtostring()
で文字列にする必要がある
local price = 100
local priceStr = "price "..tostring(price)
print(priceStr)
=> price 100
string.format()を使用する連結
C言語系の、printf()的な書き方。string.format系はあまり使わない印象があったが、Luaに限るとこちらの方がスマートに見えてくる
local price = 100
local priceStr = string.format("price %d", price)
=> price 100
%dの部分は指定子といい、%d
は整数(10進数)、%s
の場合は文字列が代入される。他にも種類があるが9割この二つしか使わなさそう。
公式参照