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

  • BenjiManTV

    BenjiManTV

    20 Mart 2011
  • RomanAtwood

    RomanAtwood

    18 Kasım 2009
  • Watcher3223

    Watcher3223

    15 Kasım 2007