Gereksinim fonksiyonu ile birden çok sonuç döndüren bir Lua modülü oluşturmak mümkün mü? Şu anda package.loaders için bir uzantı yazıyorum ve bu davranışı desteklemem gerekip gerekmediğini bilmek istiyorum.Can Lua'nın işlevi birden çok sonuç döndürmesini gerektiriyor mu?
Örneğin, mod.lua
adlı aşağıdaki modülü, atın: Aşağıdaki çıktıda
print("running script")
s1, s2 = require("mod")
print("s1: " .. tostring(s1))
print("s2: " .. tostring(s2))
Sonuçlar::
running script
module loading
s1: string1
s2: nil
aşağıdaki komut dosyası tarafından gerekli
print("module loading")
return "string1", "string2"
İkinci dizenin döndürülmesini beklerdim. Böyle bir davranışı kullanmak istemiyorum ve bir tabloyu iade ederek ve paketini açarak çoğaltabileceğinizi anlıyorum, sadece işe yaramayacağını bilmek istiyorum (geçerli Lua sözdizimi olduğu gibi) ve bulamıyorum. Bu konuda her yerde kesin cevap.
Evet, görünüşe
bar.lua Bu şekilde kaynağa bakıyorum (Lua 5.2'de yaşıyorum ve aynı tek geri dönüş değeri). Kısıtlama, kısmen, sonucu "_LOADED [" mod "]' da sakladığından ve çoğu durumda gereksiz olan bir tabloyu paketlemeden ve bir kez daha açmadan, oradan çok sayıda değer döndüremeyeceği sanırım. – GooseSerbus
@GooseSerbus Ayrıca, 'require' dönüş değerini değiştirdiği için de geçerli. Modül 'nil' döndürürse,' require' yerine 'true' döndürür. – finnw