[lua] require 的奇怪事

基础信息

  • 有文件目录./test_require.lua
  • 有文件目录./lib/script.lua
-- ./lib/script.lua
local tbl = {}
return tbl

开始实验

-- ./test_require.lua
package.path = package.path ..";./lib/?.lua"
print("第一次", require "script", require "lib.script")
print("第二次", require "script", require "lib.script")

按理说,上面打印的table是一样的, 但实际上不一样

第一次  table: 0x55645973e750   table: 0x55645973e8c0   ./lib/script.lua
第二次  table: 0x55645973e750   table: 0x55645973e8c0

结论

通过 require 不同的路径会产生不同的实例

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 书:Programming in lua,2th edition 参考手册:http://www.lua.org/...
    hepingle阅读 824评论 0 1
  • Description 简述 Almost all the Nginx modules can be used w...
    m风满楼阅读 1,297评论 0 0
  • OpenResty 官网:http://openresty.org/ OpenResty® - 中文官方站 htt...
    ebayboy阅读 909评论 0 0
  • 目标 基于openresty 和 lua 参考apisix的后台实现一个自己的网关那首先要搭建一个apisix 啊...
    dozenx阅读 1,005评论 0 1
  • 1. 什么是模块 对于用户来说,模块就是一个程序库,可以通过require来加载,然后就得到了一个全局变量,表示一...
    忆中异阅读 1,614评论 0 2