gpt4 book ai didi

Lua中的loadfile、dofile、require详解

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Lua中的loadfile、dofile、require详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本来今天不应该讨论这几个函数的,不过,为了凑字数..不,为了方便以后的文章,还是要谈谈这几个基础函数的~ 。

1.loadfile——只编译,不运行 。

loadfile故名思议,它只会加载文件,编译代码,不会运行文件里的代码。 比如,我们有一个hellofile.lua文件:

复制代码 代码如下:

print(“hello”);
function hehe()
print(“hello”);
end

这个文件里有一句代码,和一个函数。试试用loadfile加载这个文件,如下代码:

复制代码 代码如下:

    loadfile("hellofile.lua");
    print("end");

  。

输出结果如下:

复制代码 代码如下:

[LUA-print] end

如果说loadfile会执行文件里的代码的话,那么,应该会输出hello字符串的。 结果表明,它是不会执行代码的.

  。

2.dofile——执行 。

很明显,dofile就是会执行代码的家伙了,如下代码:

复制代码 代码如下:

    dofile("E:/Android/wordspace_cocosIDERc0/CocosLuaTest/src/hellofile.lua");
    print("end");

  。

输出结果如下:

复制代码 代码如下:

[LUA-print] hello
[LUA-print] end

这里有点尴尬,文件路径我用了绝对路径,因为dofile在Coco Code IDE里使用相对路径会找不到文件(即使使用了addSearchPath) 。

  。

不过没关系,不影响本文的内容.

3.require——我只执行一次 。

require和dofile有点像,不过又很不一样,require在第一次加载文件的时候,会执行里面的代码.

但是,第二次之后,再次加载文件,则不会重复执行了。换句话说,它会保存已经加载过的文件,不会重复加载。 测试代码如下:

复制代码 代码如下:

    for i = 1, 2, 1 do
        require("hellofile.lua");
    end
    print("end");

  。

为了说明这种情况,我刻意调用了两次require,输出结果如下:

复制代码 代码如下:

[LUA-print] hello
[LUA-print] end

和我们说的一样,调用了两次,但是代码只执行了一次。 如果这里换成dofile,则会输出两次hello字符串.

  。

4.结束 。

我发现这样边看书边整理文章,进度有点慢…真是鱼和熊掌的问题了.

最后此篇关于Lua中的loadfile、dofile、require详解的文章就讲到这里了,如果你想了解更多关于Lua中的loadfile、dofile、require详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com