SORU
9 AĞUSTOS 2009, Pazar


En etkili yolu ise Lua bir masa boş (hayır girdileri içerir) olup olmadığını belirlemek için?

Eğer bir masa boş (yani, şu anda dizi tarzı değerleri ne dict tarzı değerleri de içerir) olup olmadığını belirlemek için en etkili yolu nedir?

Şu anda next() kullanıyorum:

if not next(myTable) then
    -- Table is empty
end

Daha etkili bir yolu var mı?

Not: # operatör değil yeterli, bu sadece çalışır dizi tarzı değerleri Tablo - böylece #{test=2} ayırt edilemez #{} çünkü her ikisi de 0 döndürür. Ayrıca eğer tablo değişkeni nil Eğer kontrol değerleri yoktur, daha ziyade 0 girdi (9 *yani*) tablo aramıyorum olarak yeterli olmadığını unutmayın.

CEVAP
10 AĞUSTOS 2009, PAZARTESİ


Kodunuzu verimli ama yanlış. (10*. *düşünün) Kod doğru

if next(myTable) == nil then
   -- myTable is empty
end

Maksimum verimlilik için yerel bir değişken, örneğin, next bağlamak isteyeceksiniz

...
local next = next 
...
... if next(...) ...

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006
  • o0oCyrusViruso0o

    o0oCyrusViru

    11 Mart 2008
  • tseyina

    tseyina

    2 AĞUSTOS 2006