2
我使用#
來計算表的長度時有個問題。例如:使用「#」運算符來計算Lua中表的長度?
local t = {"a", "b"}
local t1 = {"a", nil}
print(#t) -- 2
print(#t1) -- 1
local t = {"a", "b"}
local t1 = {nil, "a"}
print(#t) -- 2
print(#t1) -- 2
誰能告訴我,爲什麼它是什麼?
local t1 = {nil,「a」} t1不是一個序列,它意味着#t1返回錯誤的長度。 – user1723404 2015-03-25 09:05:11
@ user1723404對於不是序列的表,「右」長度沒有達成一致。實際上,對於非序列,Lua可能爲具有相同條目的表返回不同的結果。例如,如果你測試'local t1 = {nil,「a」};打印(#t1)'你可能會得到'2'。但是如果你測試'local t1 = {}; T [1] =零; T [2] = 「A」;打印(#t1)'你可能會得到'0'。 – tehtmi 2015-03-25 10:50:26
@ user1723404'#t1'沒有被定義,意味着它沒有*正確的*值。特別是,你可能會在不同的Lua實現中獲得不同的價值。 – 2015-03-25 11:13:10