Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 如何使用变量名而不重写模块名?_Design Patterns_Lua - Fatal编程技术网

Design patterns 如何使用变量名而不重写模块名?

Design patterns 如何使用变量名而不重写模块名?,design-patterns,lua,Design Patterns,Lua,math.random()是开箱即用的,但是如果我将math设置为其他值,它就会崩溃 localmath=1+1——将math设置为其他值 math.random()--中断 设置local math=1+1时,有没有办法使math.random()仍然有效 我有一堆带有点符号函数的模块,比如coord.get()或offset.get() 但是像coord和offset这样的基本单词对于变量名就不可用了,这让人讨厌使用正确编写的模块,您可以执行local coords=require(“co

math.random()
是开箱即用的,但是如果我将
math
设置为其他值,它就会崩溃

localmath=1+1——将math设置为其他值
math.random()--中断

设置
local math=1+1
时,有没有办法使
math.random()
仍然有效

我有一堆带有点符号函数的模块,比如
coord.get()
offset.get()


但是像
coord
offset
这样的基本单词对于变量名就不可用了,这让人讨厌使用正确编写的模块,您可以执行
local coords=require(“coord”)

这将创建一个局部变量
coords
,这样当
coord
被稍后的局部定义遮盖时,您仍然可以通过
coords
访问函数。如果模块不返回它创建的表,并且只全局地创建它,那么这将不起作用

如果math.random
local random=math.random
是在
local math
变量之前定义的,则同样适用于math.random

local random = math.random
local math = 1 + 1

print(random(math))
或者,您可以将整个库放入局部变量中,如下所示:

local maths = math
local math = 1 + 1

print(maths.random(math))

也就是说,名为
math
的数字变量不太可能命名正确。根据您的示例,类似于
产品
的名称更合适。

您可以随时再次要求模块:

require("math").random()

因为模块已经加载,所以这并不昂贵。

\u G.math.random()
本地坐标系指模块。您没有将模块放入其中。。。