- Lua 教程
- Lua - 首页
- Lua 基础
- Lua - 概述
- Lua - 环境
- Lua - 基本语法
- Lua - 注释
- Lua - 打印 Hello World
- Lua - 变量
- Lua - 数据类型
- Lua - 运算符
- Lua - 循环
- Lua - 条件语句
- Lua - 函数
- Lua - 日期和时间
- Lua 数组
- Lua - 数组
- Lua - 多维数组
- Lua - 数组长度
- Lua - 遍历数组
- Lua 迭代器
- Lua - 迭代器
- Lua 列表
- Lua - 列表搜索
- Lua 模块
- Lua - 模块
- Lua - 命名空间
- Lua 元表
- Lua - 元表
- Lua 协程
- Lua - 协程
- Lua 文件处理
- Lua - 文件I/O
- Lua 库
- Lua - 标准库
- Lua - 数学库
- Lua - 操作系统功能
- Lua 有用资源
- Lua - 快速指南
- Lua - 有用资源
- Lua - 讨论
Lua - 命名空间
命名空间是一个声明区域,它为其中的标识符(类型、函数、变量等的名称)提供作用域。
简单来说,命名空间是一类元素,其中每个元素都具有该类特有的名称。它用于将代码组织成逻辑组,并防止特别是在代码库包含多个库时可能发生的名称冲突。
在 Lua 中,并不存在命名空间。尽管 Lua 不支持命名空间,官方文档中提到,“有时将代码组织成带有命名空间的包和模块以避免名称冲突并组织代码是很好的”。
由于 Lua 没有官方的命名空间,我们必须自己创建一个,方法是使用表。
在下面显示的代码中,我们创建了一个包含两个不同函数的命名空间,我们可以使用它们而不会出现编程问题。
示例
考虑下面显示的示例:
main.lua
Distance = Distance or {} -- Allow addition to namespace function Distance.onedim(start, stop) return (start > stop) and start - stop or stop - start end function Distance.twodim(start, stop) local xdiff = start[1] - stop[1] local ydiff = start[2] - stop[2] local summer = xdiff * xdiff + ydiff * ydiff return math.sqrt(summer) end print(Distance.onedim(5,10)) print(Distance.twodim({5,10},{10,20}))
输出
5 11.180339887499
广告