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

  • Brendan van Son

    Brendan van

    5 Aralık 2006
  • Chuck Testa

    Chuck Testa

    14 AĞUSTOS 2011
  • girleffect

    girleffect

    20 Mayıs 2008