zoukankan      html  css  js  c++  java
  • unity lua require dofile loadfile 区别

    oadfile,加载文件,编译文件,并且返回一个函数,不运行

    dofile其实就是包装了Loadfile,根据loadfile的返回函数运行一遍

    require加载文件的时候,不用带目录,有lua自己的搜索加载目录的路径,并且会判断文件是否加载过,加载过则不加载.

    下面是详细介绍:摘自《Lua程序设计第二版》

    虽然我们把 Lua 当作解释型语言,但是 Lua 会首先把代码预编译成中间码然后再执
    行(很多解释型语言都是这么做的)。在解释型语言中存在编译阶段听起来不合适,然而,
    解释型语言的特征不在于他们是否被编译,而是编译器是语言运行时的一部分,所以,
    执行编译产生的中间码速度会更快。我们可以说函数 dofile 的存在就是说明可以将 Lua
    作为一种解释型语言被调用。

    dofile:把它当作 Lua 运行代码的 chunk 的一种原始的操作。
    实际上是一个辅助的函数。真正完成功能的函数是 loadfile;与 dofile 不同的是 loadfile
    编译代码成中间码并且返回编译后的 chunk 作为一个函数,而不执行代码;另外 loadfile
    不会抛出错误信息而是返回错误代。.我们可以这样定义 dofile:

    function dofile (filename)
      local f = assert(loadfile(filename)) --如果 loadfile 失败 assert 会抛出错误。
      return f() -- 根据loadfile的返回函数运行一遍
    end

    原文地址:https://blog.csdn.net/u012861978/article/details/54667179

  • 相关阅读:
    IntelliJ IDEA 常用快捷键
    solr4.5分组查询、统计功能介绍
    用于Lucene的各中文分词比较
    Lucene打分规则与Similarity模块详解
    Lucene
    tar中的参数 cvf,xvf,cvzf,zxvf的区别
    tmux 入门踩坑记录
    第一个shell脚本
    make 和 make install 的区别
    交叉编译
  • 原文地址:https://www.cnblogs.com/unityzc/p/10033296.html
Copyright © 2011-2022 走看看