我如何在函数lua中设置全局变量

时间:2014-02-28 08:39:51

标签: iphone lua corona

webView = nil
func()
function func()
              webView = native.newWebView( 0, 0, display.contentWidth, display.contentHeight )
              webView:request( "https://api.twitter.com/oauth/authenticate?oauth_token="..twitter_request_token )
              webView:addEventListener( "urlRequest", webListener )

end
print(webView) -- webView = nil

我如何在webView之外func获取func,我在{{1}}内更改了{{1}}。请帮助,

3 个答案:

答案 0 :(得分:2)

你的例子(几乎)没有任何问题。您需要确保在定义后调用func(),但除此之外应该有效。例如,这为我输出something

webView = nil
function func()
  webView = "something"
end
func()
print(webView)

是的,你可以在函数中使用显式引用_G.webView,但在你的情况下没有必要这样做。

如果您仍有问题,可能是因为您认为func()未执行。在函数内部分配后,尝试print webView的值。

答案 1 :(得分:0)

您可以在变量前面附加_G作为全局变量。

你必须在_G。

中使用你的变量

对于Ex:

_G.yourVaribalename=display.newText();

答案 2 :(得分:0)

你没有'需要声明变量,除非指定为local,否则它们将自动为全局变量。在定义func之前,您无法调用func()。所以试试这个:

function func()
    webView = native.newWebView( 0, 0, display.contentWidth, display.contentHeight )
    webView:request( "https://api.twitter.com/oauth/authenticate?oauth_token="..twitter_request_token )
    webView:addEventListener( "urlRequest", webListener )
end
func()
print(webView) -- webView will not be nil

在上文中,webView是全局的,因此它会在func()内创建后立即全局存在,并在func()返回后继续存在。