1. module( , package.seeall)

在Lua中,使用module函数可以创建一个模块。模块是一组相关的函数、变量和常量的集合,可以在其他Lua程序中被引用和使用。module函数的第一个参数是模块名,第二个参数是一个可选的表,可以用来定义模块的一些属性和方法。如果第二个参数是package.seeall,则可以在其他程序中使用模块中没有定义的全局变量。

举个例子:

module("mymodule", package.seeall)

function add(a, b)
  return a + b
end

function sub(a, b)
  return a - b
end

上面的代码定义了一个名为mymodule的模块,包含了两个函数add和sub。由于使用了package.seeall,其他程序可以使用mymodule中没有定义的全局变量,例如:

require("mymodule")

print(x) -- 输出nil
print(add(1, 2)) -- 输出3
print(sub(3, 1)) -- 输出2
  1. require()

在Lua中,使用require函数可以引入其他模块。require函数的参数是模块名,可以是一个字符串或者一个表。如果参数是一个字符串,则Lua会在package.path中寻找模块文件,如果找到了就加载并执行模块代码,如果没有找到则抛出错误。如果参数是一个表,则Lua会在表中查找模块代码,如果找到了就加载并执行模块代码,如果没有找到则抛出错误。

举个例子:

require("mymodule")

print(add(1, 2)) -- 输出3
print(sub(3, 1)) -- 输出2

上面的代码使用了require函数引入了mymodule模块,并使用了该模块中的函数add和sub。如果mymodule模块没有被定义,则会抛出错误。

需要注意的是,如果一个模块被require了多次,Lua只会加载并执行一次该模块的代码,后续的require调用会直接返回该模块的全局变量。这样可以避免重复加载和执行模块代码,提高程序的性能

详解下lua里面module packageseeall 和require的作用

原文地址: https://www.cveoy.top/t/topic/hwDa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录