SORU
19 AĞUSTOS 2010, PERŞEMBE


Neden Lua hayır " var;devam" deyimi?

Son birkaç ay içinde Lua ile çok uğraşıyorum, ve ben gerçekten özellikleri çoğu gibi ama hala aralarında bir şey kaçırıyorum

  • Neden continue var mı?
  • Geçici çözümler ne için vardır?

CEVAP
19 AĞUSTOS 2010, PERŞEMBE


Dili sözlü kapsam yönetme biçimi goto continue ve daha fazlası ile ilgili sorunlar yaratır. Örneğin,

local a=0
repeat 
    if f() then
        a=1 --change outer a
    end
    local a=f() -- inner a
until a==0 -- test inner a

Bildirgesi local a döngünün içinde vücut maskeleri dış değişken adında a ve kapsamı yerel uzanır durumu until deyimi çok koşulu test içteki a.

Eğer continue varsa, anlamsal değişkenleri durumda kullanılan kapsamına girer sonra geçerli olmak yasak olmalı. Bu kullanıcı için belge ve derleyici zorlamak için zor bir durumdur. Bu konu etrafında çeşitli öneriler tartışıldı, döngü repeat ... until tarzı continue izin vermeme gibi basit bir cevabı da vardır. Şu ana kadar, hiçbiri yeterince ikna edici bir senaryo dilinde onlara yer almak zorunda.

Geçici çözüm, genellikle continue bir idam edilmesine neden olacak bu durumu tersine çevirmek ve bu durumda döngü vücudun geri kalanı toplamak için. Bu yüzden, aşağıdaki döngü

-- not valid Lua 5.1 (or 5.2)
for k,v in pairs(t) do
  if isstring(k) then continue end
  -- do something to t[k] when k is not a string
end

yazılı olabilir

-- valid Lua 5.1 (or 5.2)
for k,v in pairs(t) do
  if not isstring(k) then 
    -- do something to t[k] when k is not a string
  end
end

Yeterince açık ve döngü işlemi kontrol, özenle hazırlanmış kağıtları saklardı bir dizi olmadığı sürece genellikle bir yük değil.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joe DiFeo

    Joe DiFeo

    7 AĞUSTOS 2012
  • LinusTechTips

    LinusTechTip

    25 Kasım 2008
  • UKF Dubstep

    UKF Dubstep

    29 NİSAN 2009