lua中的package、loadfile、dofile、require详解

xiaoxiao2022-06-12  54


C#中的namespace、Java中的pack等,lua中没有提供package,可以利用一些方式实现package。利用table实现package(常用),缺点:同一个包调用的时候要加前缀。 Pack = {} function Pack.Print() print("lua 好恶心!") end Pack.Print() return Pack loadfile() 只加载编译代码,不执行, 返回一个function loadfile("test.lua") --> print(loadfile("test.lua")) --> function: 00A8B988 print("End") -->End dofile() 加载执行代码,每调用dofile一次,都会重新编译执行一次。 dofile("test.lua") -->测试lua_dofile print("End") --End require()    只执行一次,会保存已加载过的文件,不会重复加载执行。(常用)    加载文件时,require会在packeage.loader中查找模块是否存在,若存在直接返回,否则,加载模块文件 for i=1,2 do print(require("test")) -->测试lua_require, require会返回true end lua指定搜索目录 -- 只加载想要的目录 package.path = "../myLuaTest/myLuaCode/?.lua;" --增加目录 package.path = "../myLuaTest/myLuaCode/?.lua;" .. package.path --添加当前目录 package.path = "./?.lua;" .. package.path

转载请注明原文地址: https://www.6miu.com/read-4932295.html

最新回复(0)