一般に、構文は次のとおりです。
for k, v in pairs(t) do
....
end
次と同等です。
for k, v in next, t do
....
end
しかし、メタメソッドがある場合tはどうなる__pairsでしょうか? 標準next()関数はこれをチェックしますか? そうでない場合は、テーブルを反復処理するときに常に使用し、直接呼び出さない方がよいのではないでしょうか? pairsnext()
一般に、構文は次のとおりです。
for k, v in pairs(t) do
....
end
次と同等です。
for k, v in next, t do
....
end
しかし、メタメソッドがある場合tはどうなる__pairsでしょうか? 標準next()関数はこれをチェックしますか? そうでない場合は、テーブルを反復処理するときに常に使用し、直接呼び出さない方がよいのではないでしょうか? pairsnext()
いいえ、next()チェックしません__pairs。マニュアルはそうは言っていません。
関連するソース コードから二重に確認できluaB_pairsますluaB_next。
メタメソッドをチェックしたくない場合があるかもしれません。__pairspairsnext