properties - Lua - 将属性加载到表中
问题描述
我想加载一个包含全局变量的 config.lua 文件,以便我可以包装这些变量,然后将这些变量访问到本地表中。
config.lua 看起来像这样:
prop01=value01
prop02=value02
script.lua 看起来像这样
-- fragment starts --
local config = {
-- something goes here
}
-- fragment end --
print (config.prop01) -- should print "value01"
print (config.prop02) -- should print "value02"
如何更改“片段”以获得预期的打印输出?
解决方案
加载配置文件时交换环境。
在 lua 5.3 中,它是使用函数完成的load
或在此处loadfile
记录:
local config={}
local config_init_fun = loadfile('config.lua',"configuration file",config)
config_init_fun()
在 lua 5.1 中,您将需要使用setfenv
以下功能:
local config={}
local config_init_fun = loadfile('config.lua',"configuration file")
config_init_fun = setfenv (config_init_fun, config)
config_init_fun()
setfenv 结果的分配可能是不必要的,但我手头没有 lua5.1 来验证这一点。
假设 config.lua 是一个设置一些全局变量的有效脚本。
推荐阅读
- html - css 内容中的元标记:''; 财产
- c++ - 递归地执行多次自我回避行走
- django - 带有 Nginx Gunicorn Daphne Channels Redis 的 SSL 上的 WebSocket wss://
- bash - 如何正确使用包含多个参数(可能包含空格)的 bash 变量
- flutter - 用户自定义表单 - Flutter
- python - 将儒略日转换为当前日期和时间
- javascript - 无法访问 Select React 中的 MenuItem 属性
- tensorflow - relu 作为激活函数或层之间有什么区别吗?
- java - 如何在不使用“if”语句的情况下检查整数数组是否已排序?
- flutter - Flutter 以编程方式进入暗模式保留过渡