【问题标题】:Variable in another module to be used in current module要在当前模块中使用的另一个模块中的变量
【发布时间】:2014-04-01 05:23:08
【问题描述】:

这是我的代码

ModuleName.FunctionName.VariableName

我想知道这是否适用,我们都知道要在另一个模块中加载一个函数,您必须使用以下代码:

ModuleName.FunctionName

我想知道我给定的代码是否适用。

【问题讨论】:

    标签: module lua coronasdk


    【解决方案1】:

    您可以在另一个模块中使用变量,但语法不像ModuleName.FunctionName.VariableName,因为函数没有字段。

    例如,考虑这个简单的模块foo.lua

    local M = {}
    
    function M.func()
        print("calling func")
    end
    
    M.var = 42
    
    return M
    

    请注意,与func() 类似,变量var 必须是全局的,或者是模块私有的。

    你可以使用变量var类似于使用函数func()的方式:

    local foo = require "foo"
    
    foo.func()
    
    print(foo.var)
    

    输出:

    calling func
    42
    

    【讨论】:

      【解决方案2】:

      有两种方法可以实现这一点。
      1 :

      -- 消息.lua 本地 M = {} 函数 M.message() 打印(“你好”) 结尾 返回 M

      您可以将上面的模块调用到其他文件中。

      --test.lua 本地味精 = 需要“消息” msg.message()

      2:

      --message.lua msg = "消息"

      您可以通过 dofile 调用以上模块

      --test.lua dofile ("/home/django/lua/message.lua") -- 你应该提供 message.lua 的完整路径 打印(味精)

      【讨论】:

        【解决方案3】:

        函数没有字段,但表有。所以你可以这样做

        ModuleName.FunctionName  -- a function in ModuleName 
        ModuleName.VariableName  -- a variable in ModuleName
        ModuleName.TableName.FieldName -- a field from a TableName which is in ModuleName
        

        注意FieldName 本身可以引用表,VariableName 可以是函数、表、字符串、数字、协程等。

        【讨论】:

          猜你喜欢
          • 2017-04-23
          • 1970-01-01
          • 2017-01-27
          • 2015-09-19
          • 1970-01-01
          • 1970-01-01
          • 2022-07-11
          • 2020-12-30
          • 1970-01-01
          相关资源
          最近更新 更多