是否可能使用另一个lua文件中定义的表,而不需要在当前文件中作为模块导入?

下面的代码摘自于一个lua文件,假设它是file0.lua

local Tags = require('file1')
local Set = require('file2')

local Guidance = {}

highway_classes = {
  motorway = road_priority_class.motorway,
  motorway_link = road_priority_class.motorway_link,
  trunk = road_priority_class.trunk,
  trunk_link = road_priority_class.trunk_link,
  primary = road_priority_class.primary,
  primary_link = road_priority_class.primary_link,
  secondary = road_priority_class.secondary,
  secondary_link = road_priority_class.secondary_link,
  tertiary = road_priority_class.tertiary
}

我已经搜索了两个要求的文件,即file1和file2。在这两个文件中我都没有找到任何关于road_priority_class的提及。我在另一个lua文件file3.lua中找到了它。但是这个file3.lua在file0.lua中并没有被导入。我在想,你知道在什么情况下这是可能的吗?我是Lua新手,我正在处理嵌入C++环境的代码,我想那也可能是原因之一。任何评论都将不胜感激。

点赞
用户4984564
用户4984564

如果 road_priority_class 是一个全局变量,那么它在声明后的任何地方都可用(例如,文件可在任何地方被调用)。

通常情況下,不建议这样做的主要原因是这样会使得跟踪事物的来源变得困难并破坏模块化。

2019-11-14 09:42:09