Lua中用 ... 表示函数的可变参数,比如 select(n, ...) --数字n表示起点,select(n, ...)返回从起点n到结束的可变参数,比如: n=3,... 是 0,1,2,3,4,5 则 select(n, ...) 就表示...中从第3个到最后一个 ...
前言 Lua中的函数和C 中的函数的含义是一致的,Lua中的函数格式如下: 在调用函数时,也需要将对应的参数放在一对圆括号中,即使调用函数时没有参数,也必须写出一对空括号。对于这个规则只有一种特殊的例外情况:一个函数若只有一个参数,并且此参数是一个字符串或table构造式,那么圆括号便可以省略掉。看以下代码: 上面代码的一些简便写法,如果不熟悉的话,在阅读别人的代码时,就会是一头雾水。 一个函数 ...
2016-10-27 09:36 0 1697 推荐指数:
Lua中用 ... 表示函数的可变参数,比如 select(n, ...) --数字n表示起点,select(n, ...)返回从起点n到结束的可变参数,比如: n=3,... 是 0,1,2,3,4,5 则 select(n, ...) 就表示...中从第3个到最后一个 ...
-- 获取当前的格林尼治时间print(os.time())-- 获取当前时间的字符串表示,形如:11/28/08 10:28:37print(os.date())-- 获取当前日期的字符串表示,形如 ...
我们先来看一个简单的例子: functest.lua: 这其中最关键的是调用函数的使用,在C中调用Lua函数的API主要由以下几个: (1)void lua_call (lua_State *L, int nargs, int nresults); 函数 ...
当Lua遇到不期望的情况时就会抛出错误,比如:两个非数字进行相加;调用一个非函数的变量;访问表中不存在的值等。你也可以通过调用error函数显示的抛出错误,error的参数是要抛出的错误信息。 assert(a,b) a是要检查是否有错误的一个参数,b是a错误时抛出的信息。第二个参数b是可选 ...
词法域:若将一个函数写在另一个函数之内,那么这个位于内部的函数便可以访问外部函数中的局部变量,这项特征称之为“词法域”。例:假设有一个学生姓名的列表和一个对应于没个姓名的年级列表,需要根据每个学生的年级来对他们的姓名进行排序(由高到低)。可以这么做: 现在假设单独创建一个函数来做 ...
当Lua遇到不期望的情况时就会抛出错误,比如:两个非数字进行相加;调用一个非函数的变量;访问表中不存在的值等。你也可以通过调用error函数显示的抛出错误,error的参数是要抛出的错误信息。 assert(a,b) a是要检查是否有错误的一个参数,b是a错误时抛出的信息。第二个参数b是可选 ...
Lua利用一个虚拟的堆栈来给C传递值或从C获取值。每当Lua调用C函数,都会获得一个新的堆栈,该堆栈初始包含所有的调用C函数所需要的参数值(Lua传给C函数的调用实参),并且C函数执行完毕后,会把返回值压入这个栈(Lua从中拿到C函数调用结果)。 于此相关的C API有几个比较重要的定义 ...