プロジェクトのLuaでの読み込みのみ。私は文字列を連結するために使用される '..'演算子が好きではありません(ちょっと不自然に見えます)。私はまだLuaについては十分に分かっていませんが、非常に柔軟なようです。Luaでの文字列連結
私は '..'の代わりに '+'を使うことができるように、何らかの形でこの動作(おそらくメタテーブルを使用しています)を '変更'できますか?
プロジェクトのLuaでの読み込みのみ。私は文字列を連結するために使用される '..'演算子が好きではありません(ちょっと不自然に見えます)。私はまだLuaについては十分に分かっていませんが、非常に柔軟なようです。Luaでの文字列連結
私は '..'の代わりに '+'を使うことができるように、何らかの形でこの動作(おそらくメタテーブルを使用しています)を '変更'できますか?
はい、可能です。このアプローチは、それが既存の文字列テーブルのつま先を踏まないという利点を持っており、それがわずかにより明らかだ
-- Overload the add operation -- to do string concatenation -- mt = {} function String(string) return setmetatable({value = string or ''}, mt) end -- The first operand is a String table -- The second operand is a string -- .. is the Lua concatenate operator -- function mt.__add(a, b) return String(a.value..b) end s = String('Hello') print((s + ' There ' + ' World!').value)
:This article from IBMは、特別な「文字列」クラスを使用しています。一例を持っています既存のLuaユーザは、__add
オペレータで何か「違う」ことをやっている。
迅速な対応をありがとう。私の対象読者は完全なテクノフォックスです。このlikeleyは(スクリプトの作家)、単純な '..'を使用して連結するよりも、それらを混乱させる。ああよく... – skyeagle
興味深い記事。 –
)? – Mudassir
@mudassir:私は脚本家の人生を楽にしようとしています(そして最終的には自分自身)。ターゲットオーディエンスはコーダーではありません。だから私は彼らにgreeting = 'hello' + 'world'のような単純な文章を書くことができるようにしたい。 – skyeagle
"+"との文字列連結は悪であり、それを実装する人は誰でも遅い、 –