aşağıdaki komutlua: Yerel kapsamı ile ilgili modül ithalat parent.lua içinde kapsamı yerel özelliklerini göstermiyor olmasıdır
//parent.lua
function scope()
local var = "abc"
require "child"
end
//child.lua
print(var)
Bu şekilde iki komut dosyaları vardır, child.lua bir nil değerini yazdırır Modüle Gereksinim yönergesinin bu kapsamda ve var beyanından sonra belirtileceğini düşündüm. Benim arzum, çocuğun tüm satırlarını tamamen ebeveyne enjekte etmektir. Altyazı, daha iyi okunabilirlik için gönderilmiştir. Yerel kapsamı nasıl geçebilirim? loadfile() işe yaramadı, dofile(). Fonksiyon ortamı fenv yerel değerleri barındırmaz. debug.setlocal() yeni değişkenler oluşturamaz gibi gözüküyor (ayrıca çocukta bir alıcı gerektiriyor). Komut dosyasını yeniden derlemenin yanında herhangi bir yöntem var mı?
Hayır, bu Lua 5.1'de mümkün değildir. Lua 5.2'de 'debug.upvaluejoin' kullanarak bu etkiyi veren bir korsanlık var. – finnw
Ne 'require' ne de' dofile ', Lua'da olmayan 'include' ile aynıdır. – lhf
Çocuk yazılarınızı neden argüman alma işlevi olarak yeniden yazmıyorsunuz? –