当前位置: 首页 > news >正文

县级网站建设wordpress建站多个域名

县级网站建设,wordpress建站多个域名,山东官方网站建设,怎么在网站里做宣传Lua 基础相关知识 第四期 require 模块,通常是一个表,表里存储了一些字段和函数,单独写在一个 lua 文件。 例如,这是一个 tools.lua 文件,定义了一个局部 tools 表,包含一个 log 函数,可以传…

Lua 基础相关知识 第四期

require

模块,通常是一个表,表里存储了一些字段和函数,单独写在一个 lua 文件。

例如,这是一个 tools.lua 文件,定义了一个局部 tools 表,包含一个 log 函数,可以传入标题和信息,函数内部格式化字符串输出。

最后要 return tools,在 require 加载这个模块时才能拿到返回的 tools 表。

local tools = {}tools.log = function (title, message)print(string.format("[%s] %s", title, message))
endreturn tools

在其他 lua 文件中加载这个 tools 模块,进行使用。

local tools = require "tools"
tools.log("console", "hello lua")-- [console] hello lua

标准库也可以通过 require 加载,换个名称。

local m = require "math"
local n = m.abs(-1)
print(n)-- 1

require 会做已加载的检查,如果已经加载过一个模块了,就不会再重复加载了。

如果要移除原来加载的模块,可以把模块从 package.loaded 中删除。

package.loaded.tools = nil

loadfile dofile require

这三个函数都是用来加载和执行外部 lua 脚本的,不过有一些区别:

  • loadfile 加载编译指定的 lua 文件,但不执行文件中的代码,需要手动调用(返回值是一个函数)
  • dofile 加载编译并执行指定的 lua 文件(返回值是文件中最后一个表达式的值)
  • require 先检查 package.loaded 是否已加载模块,若已加载,则直接返回,若不存在,则编译执行一次,并记录到 package.loaded(返回值通常是一个表)

这里所说的执行,是指被加载的 lua 文件中,写在表外面可以被执行的语句,例如在 tools 中添加一行打印,表示欢迎使用这个模块。

local tools = {}print("Welcome to use this tools module!")tools.log = function (title, message)print(string.format("[%s] %s", title, message))
endreturn tools

先尝试使用 loadfile,注意,第一行代码加载的是 tools.lua,需要增加 .lua 后缀名,第一行并没有输出。

第二行代码打印了 loadfile 的返回值,输出的是一个 function。

第三行代码手动调用了返回的函数,才执行了 tools.lua 里面的一行打印。

local tools = loadfile("tools.lua")
print(tools)  -- function: 0000025E2F7791D0
tools()       -- Welcome to use this tools module!

再尝试一下 dofile,同样的,第一行代码加载的是 tools.lua,第一行就输出了。

第二行代码打印的返回值是 table,也就是 tools.lua 最后一行的 return tools

第三行代码则不是直接调用 tools 了,因为它并不是一个函数。应该调用 tools.log

local tools = dofile("tools.lua")  -- Welcome to use this tools module!
print(tools)                       -- table: 00000150C5D61D30
tools.log("console", "hello lua")  -- [console] hello lua

最后回到 require,注意,第一行代码没有 .lua 后缀名,第一行就输出了。

后面两行代码和 dofile 是一致的。

local tools = require("tools")     -- Welcome to use this tools module!
print(tools)                       -- table: 0000025D08BF13D0
tools.log("console", "hello lua")  -- [console] hello lua

如果再次加载 lua 文件,loadfile 依然是需要手动调用,dofile 会再次输出,require 则只输出一次,除非移除已加载的模块。

local tools_loadfile = loadfile("tools.lua")
local tools_loadfile = loadfile("tools.lua")local tools_dofile = dofile("tools.lua")  -- Welcome to use this tools module!
local tools_dofile = dofile("tools.lua")  -- Welcome to use this tools module!local tools_require = require("tools")    -- Welcome to use this tools module!
local tools_require = require("tools")package.loaded.tools = nil
local tools_require = require("tools")    -- Welcome to use this tools module!
http://www.yayakq.cn/news/83662/

相关文章:

  • 张家界酷网科技网站建设安徽省在建项目查询
  • 专注网站搭建的公司mip网站有什么好处
  • 网站建设费用初步预算相城专业的网站建设
  • 做兼职上什么网站网站创建器
  • 网站建设宣传视频刚建设的网站如何推广
  • 网站无备案无法登入塘沽做网站的公司
  • wordpress知名中国网站公司必备的几个部门
  • 平顶山做网站优化具有口碑的产品设计网站
  • 山阴县2017建设局网站下关汇做网站的公司
  • 新都兴城建设投资有限公司网站wordpress主题 单步调试
  • 泰安企业网站seo哪个网站做h5号
  • 想自学做网站wordpress主题下载弹窗
  • 无忧网站建设哪家便宜app制作器手机版下载
  • 杭州企业网站做网站应达到什么效果
  • 东莞优化seo米泉seo快速排名
  • 做文库网站怎么赚钱七牛怎么做网站服务器
  • 搭建网站是什么网站开发视频播放好做吗
  • 网站空间根目录WordPress博客模板慢
  • 购买源码的网站discuz整合wordpress
  • 网站推广合同需要缴纳印花税吗电商建站系统
  • 装修公司做网站好做吗装修图库大全图片
  • 越城区建设和交通运输局网站图片展示模块网站做一个多少钱
  • 高端网站建设费用预算什么网站建设最简单
  • dw做的网站怎么传到网络上去wordpress 文章时间
  • 网站规则花卉网站建设项目策划书
  • 常德网站seo网站开发可以自学吗
  • 私自建立网站网站判决书吃什么补肾快
  • 聊城网站制作浙江省省建设厅网站
  • 如何开心设计一个网站国外图床 wordpress
  • 深圳网页制作与网站建设公司上海官方最新消息