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
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.
Neden "hayır projeleri alma" ...
Neden Java "ulaşılamaz deyimi&quo...
Neden Python "nihayet" deyim...
Neden baskı "B" baskı " ...
Neden bu kod rastgele dizeleri yazdırm...