Lua 4.0中关于函数学习笔记

移动开发 iOS
Lua 4.0中关于函数学习笔记是本文要介绍的内容,主要是把Lua4.0里面的函数总结出来,目的是为了和5.1中的函数进行区分,由于工作中经常使用到4.0中的函数,

Lua 4.0中关于函数学习笔记是本文要介绍的内容,主要是把Lua4.0里面的函数总结出来,目的是为了和5.1中的函数进行区分,由于工作中经常使用到4.0中的函数,所以列出来也便于查询和学习。

标准库

  1. _ALERT  
  2. _ERRORMESSAGE  
  3. call  
  4. collectgarbage 

功能:是垃圾收集器的通用接口,用于操作垃圾收集器

copytagmethods

dofile (filename)

功能:打开并且执行一个lua块,当忽略参数filename时,将执行标准输入设备(stdin)的内容。返回所有块的返回值。当发生错误时,dofile将错误反射给调用者
注:dofile不能在保护模式下运行

dostring

功能:执行一个字符串形式的lua

error (message [, level])

功能:终止正在执行的函数,并返回message的内容作为错误信息(error函数永远都不会返回)

通常情况下,error会附加一些错误位置的信息到message头部.

Level参数指示获得错误的位置,

Level=1[默认]:为调用error位置(文件+行号)

Level=2:指出哪个调用error的函数的函数

Level=0:不添加错误位置信息

foreachi(table, function(i, v))

功能:会期望一个从 1(数字 1)开始的连续整数范围,遍历table中的key和value逐对进行function(i, v)操作,与lua5.1中的用法相同

foreach

功能:与foreachi不同的是,foreach会对整个表进行迭代,与lua5.1中的用法相同

  1. gcinfo  
  2. getflobal  
  3. gettagmethod  
  4. globals  
  5. newtag  
  6. next  
  7.  
  8. print (...) 

功能:简单的以tostring方式格式化输出参数的内容

  1. rawget  
  2. rawset  
  3. rawgettable  
  4. rawsettable  
  5. setglobal  
  6. settag  
  7. settagmethod  
  8. tag 

tonumber (e [, base])

功能:尝试将参数e转换为数字,当不能转换时返回nil

base(2~36)指出参数e当前使用的进制,默认为10进制,如tonumber(11,2)=3

tostirng(e)

功能:将参数e转换为字符串,此函数将会触发元表的__tostring事件

type(v)

功能:返回参数的类型名("nil","number", "string", "boolean", "table", "function", "thread", "userdata")

assert(v [, message])

功能:相当于C的断言,

参数:

v:当表达式v为nil或false将触发错误,

message:发生错误时返回的信息,默认为"assertion failed!"

getn(table)

功能:返回table中元素的个数,用法与lua5.1中的table.getn相同

sort(table, function)

功能:给定的table进行升序排序,用法与lua5.1中的table.sort相同

tinsert(table, [pos,] value)

功能:向table中插入一个元素,用法与lua5.1中的table.insert相同

tremove(table[, pos])

功能:删除table中的某一元素,用法与lua5.1中的table.remove相同

输入输出库 io库

colck

功能:返回一个程序使用CPU时间的一个近似值,同lua5.1中使用方法

date

功能:功能:返回一个按format格式化日期、时间的字串或表,同lua5.1中使用方法

execute

功能:相当于C的system函数,返回系统状态码,同lua5.1中使用方法

exit

功能:相当于C的exit函数,终止主程序,code为返回值,同lua5.1中使用方法

getenv

功能:返回当前进程的环境变量varname的值,若变量没有定义时返回nil,同lua5.1中使用方法

remove

功能:删除文件或一个空目录,若函数调用失败则返加nil加错误信息,同lua5.1中使用方法

rename

功能:更改一个文件或目录名,若函数调用失败则返加nil加错误信息,同lua5.1中使用方法

setlocale

功能:设置程序的当前设置,函数返回***的值,失败则返回nil,同lua5.1中使用方法

tmpname

功能:返回一个临时文件名,同lua5.1中使用方法

debug

功能:进入交互式的调试模式,解释我们的输入,输入cont回车就退出

appendto

openfile(file, mod)

功能:打开一个文件,返回一个文件句柄。有两个参数,文件名和打开模式

参数:file文件名

参数:mode有下列几种形态字符串:

r 打开只读文件,该文件必须存在。

r+ 打开可读写的文件,该文件必须存在。

rb+ 读写打开一个二进制文件,只允许读写数据。

rt+ 读写打开一个文本文件,允许读和写。

w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
 
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

wb 只写打开或新建一个二进制文件;只允许写数据。

wb+ 读写打开或建立一个二进制文件,允许读和写。

wt+ 读写打开或着建立一个文本文件;允许读写。

at+ 读写打开一个文本文件,允许读或在文本末追加数据。

ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

例如:

  1. local f = openfile("abc.txt", "rb") 

closefile(f)

功能:关闭打开文件的句柄

  1. read(f, readtype)  
  2. 功能:从一个打开的文件中读取数据。  
  3. 参数:f是打开的文件句柄  
  4. 参数:readtype表示要读取的方式  
  5. "*a"表示读取整个文件内容  
  6. "*l"表示读一行  
  7. "*n"表示读一个数字  
  8. "*w"表示读一个单词 

例如:

  1. local f = openfile("d:\\test\\test\\test.cpp", "rb");  
  2. assert(f)  
  3. local data = read(f, "*l");  
  4. print(data)  
  5.  
  6. 输出:this is the first line! 

readfrom

seek(file, seekmod, pos)

功能:移动文件指针

参数:f是打开的文件句柄

参数:移动模式

set是设置指针移动的位置,第三个参数是具体要移动的位置

cur是从指针当前位置移动,第三个参数是具体要移动的位置,可以为负,表示前移

end是移动到文件结果,无第三个参数

例如:

  1. local f = openfile("d:\\test\\test\\test.cpp", "rb");  
  2. seek(f, "set", 10);  
  3. seek(f, "cur", 8);  
  4. seek(f, "end");  
  5. local data = read(f, "*l");  
  6. print(data);  
  7. closefile(f); 

write(file, data)

功能:向一个文件中写入数据
参数:文件句柄
参数:要写入文件的数据

例如:

  1. local f = openfile("d:\\readme.txt", "wb");  
  2. assert(f)  
  3. write(f, "abcde")  
  4. closefile(f)  
  5.  
  6. writeto 

flush(f)

功能: 清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件

数学库 math库

abs

功能:取绝对值

sin

功能:正弦函数

cos

功能:余弦函数

tan

功能:正切函数

asin

功能:反正弦函数

acos

功能:余弦函数

atan

功能:反正切函数

atan2

功能:x / y的反正切值

ceil

功能:不小于x的***整数

floor

功能:不大于x的***整数

mod

功能:取模运算

frexp

功能:把双精度数val分解为数字部分(尾数)和以2为底的指数n,即val=x*2n

ldexp

功能:计算value * 2的n次方

sqrt

功能:开平方函数

min

功能:取得参数中最小值

max

功能:取得参数中***值

log

功能:计算一个数字的自然对数

log10

功能:计算以10为基数的对数

exp

功能:计算以e为底x次方值

deg

功能:弧度转角度

rad

功能:角度转弧度

random

功能:获取随机数

randomseed

功能:设置随机数种子

字符串库 string库

strlen(str)

功能:获得字符串的长度

  1. strlen("abcdefghijklmn")  
  2. 输出:14 

strsub(str, nStart, nEnd)

功能:截取字符串

  1. strsub("abcdefghijklmn", 4, 7)  
  2. 输出:defg 

strlower(str)

功能:字符串转小写

  1. strlower("AbCdEFg")  
  2. 输出:abcdefg 

strupper(str)

功能:字符串转大写

  1. strupper("AbCdEFg")  
  2. 输出:ABCDEFG 

strchar(byte1, byte2, ..)

功能:数字转字符串

  1. strchar(97, 98, 99)  
  2. 输出:abc 

strrep(str, nCount)

功能:返回一个指定数目拼接在一起的字符串

  1. strrep("hello", 5)  
  2. 输出:hellohellohellohellohello 

ascii(str)

功能:字符串转数字

注意:若传入多个字符组成的字符串,只返回***个字符的ascii码

  1. ascii("a")  
  2. ascii("abc")  
  3.  
  4. 输出:97 

strbyte(str)

功能:字符串转数字

注意:若传入多个字符组成的字符串,只返回***个字符的ascii码

  1. strbyte("a")  
  2. strbyte("abc")  
  3.  
  4. 输出:97 

format(str, "格式化字符串")

功能:返回一个指定格式的格式化字符串

  1. format("%s is %s ,has %s apples!", "Henry", "farmer", 19) 

输出:

  1. Henry is farmer ,has 19 apples! 

strfind(str, substr[, nStart])

功能:查找一个字符串在另一个字符串中的位置,参数3可以指定开始查找的位置

  1. strfind("aaa  hello, mike! hello", "hello", 8) 

输出:19  23

gsub(str, perttem, repl[, n])

功能:在str查找等于或类似perttem格式的字符串,用repl替换,参数4可选,为替换的次数

注意:该函数支持字符串匹配操作,返回的第2个值表示替换了多少次

  1. gsub("hello, world", "%w+", "xxx") 

输出:

  1. xxx, xxx 2 

调试库 debug库

  1. getlocal  
  2. getinfo  
  3. setcallhook  
  4. setlinehook  
  5. setlocal 

小结:Lua 4.0中关于函数学习笔记的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 博客园
相关推荐

2011-08-23 16:48:41

Lua 5.1API 函数

2011-08-23 16:37:05

Lua数学库

2011-08-23 16:14:27

Lua函数库函数

2011-08-23 17:33:08

LuaMetatable

2011-08-29 15:45:59

Lua函数

2011-08-23 13:15:37

LUAPackage

2009-10-16 13:38:43

VB.NET Spli

2011-08-25 10:07:24

Lua 5.0函数编译器

2011-08-23 15:02:59

LuaTable

2011-08-24 17:09:35

LUA闭包函数

2011-08-23 11:13:56

Lua

2011-08-22 17:13:00

LuaC++函数

2011-08-25 14:43:55

LUA对象序列化

2011-08-23 17:06:03

2011-08-24 13:27:07

Lua 游戏C接口脚本

2011-08-23 14:26:07

Lua字符串

2011-08-23 15:34:56

Lua模式 匹配

2011-08-24 14:14:13

LUA环境 配置

2011-08-23 13:54:10

LUA全局变量

2011-08-23 15:57:21

Lua元表元方法
点赞
收藏

51CTO技术栈公众号