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

  • Blue Lightning TV

    Blue Lightni

    9 EKİM 2011
  • booba1234

    booba1234

    22 Temmuz 2006
  • Tahir Jahi

    Tahir Jahi

    6 Mart 2006