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