[解決済み] 何をするのか? for i=1,select('#',...)
2022-02-14 10:40:28
質問
あるプロジェクトで次のようなコードに遭遇したのですが、for-loopの繰り返し部分がよくわかりません。select()関数とは何ですか?
function _log (str,...)
local LOG="/tmp/log.web"
for i=1,select('#',...) do
str= str.."\t"..tostring( select(i,...) )
end
os.execute("echo \"".. str .."\" \>\> " .. LOG )
end
解決方法は?
からの Luaマニュアル :
もし
index
が数値の場合、引数番号index以降の全ての引数を返します。 そうでなければ,indexは文字列でなければならない。"#"
そして、selectは受け取った余分な引数の総数を返します。
この記事から Luaの複数引数と"select"関数 必要であれば、表形式に変換することもできます。
function multiple_args(...)
local arguments = {...} -- pack the arguments in a table
-- do something --
return unpack(arguments) -- return multiple arguments from a table (unpack)
end
最後に、インデックスとして "#" を渡すと、この関数は与えられた複数の引数のカウントを返します。
print(select("#")) --> 0
print(select("#", {1, 2, 3})) --> 1 (single table as argument)
print(select("#", 1, 2, 3)) --> 3
print(select("#", {1,2,3}, 4, 5, {6,7,8}) --> 4 (a table, 2 numbers, another table)
関連
-
[解決済み】<eof>は'end'の近くで期待される。
-
[解決済み] LUA がグローバルな nil 値のインデックスを作成しようとした
-
[解決済み] Luaでのインクリメント
-
[解決済み] Luaにおけるmath.random()とmath.randomseed()の違いについて
-
[解決済み] 何をするのか? for i=1,select('#',...)
-
luaの一般的なエラーの種類
-
[解決済み] <' の近くに予期しない記号がある
-
[解決済み] Luaはstdoutをコンソールウィンドウにリダイレクトします。
-
[解決済み] Luaでファイルからデータを読み込む方法
-
[解決済み] 時計回りに並べると?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Luaで「nil値のインデックスを作成しようとした」エラー
-
[解決済み] Luaテーブルのすべての要素を削除する方法は?
-
[解決済み] "Unable to cast value to Object" エラーメッセージ
-
[解決済み] LuaでNewLine( \n) alternative?
-
lua が表示される xxx: nil 値 (フィールド 'getn') を呼び出そうとする 解決方法
-
このエラーは、LUA が nil 値(グローバル 'loadstring')を呼び出そうとしたときに発生しました。
-
lua loadlib 関数がグローバルな 'loadlib' (nil 値) を呼び出そうとする
-
luaのエラーまとめ
-
luaの一般的なエラーの種類
-
Lua基本関数 type、tonumber、tostring、pcall、print