第一次——参考易百教程——lua教程快速学习 (学习内容建立在阅读者具备基础的C或是C++知识)
操作系统版本:Windows10
软件:SciTE
定义函数
--[[
optional_function_scope function function_name( argument1, argument2, argument3........,
argumentn) --[[函数名称(参数)]]
function_body --[[函数主体]]
return result_params_comma_separated --[[返回]]
end
]]
--[[实例如下:]]
function max(num1, num2)
if (num1 > num2) then
result = num1;
else
result = num2;
end
return result;
end
调用函数:当程序调用一个函数时,程序控制会转移到调用的函数。调用的函数执行定义的任务,当执行其返回语句或达到其函数结束时,它将程序控制返回给主程序。
function max(num1, num2)
if (num1 > num2) then
result = num1;
else
result = num2;
end
return result;
end
print("The maximum of the two numbers is ",max(10,4))
print("The maximum of the two numbers is ",max(5,6))
分配和传递函数:在Lua中,将函数赋值给变量,也可以将它们作为另一个函数的参数传递。
myprint = function(param)
print("This is my print function - ##",param,"##")
end
function add(num1,num2,functionPrint) --[[加法函数]]
result = num1 + num2
functionPrint(result)
end
myprint(10)
add(2,5,myprint)
可变参数的函数:使用…作为参数在Lua中创建具有可变参数的函数。
--[[采用变量参数并通过函数计算返回平均值]]
function average(...)
result = 0
local arg = {...}
for i,v in ipairs(arg) do --[[类似于if...then一样]]
result = result + v
end
return result/#arg
end
print("The average is",average(10,5,3,4,5,6))
和C/C++的字符串不一样的是lua新增加了一种[[与]]
string1 = "1"
print("string 1 is", string1)
string2 = '2'
print("string 2 is ", string2)
string3 = [[3]]
print("string 3 is ", string3)
转义序列 | 作用 |
---|---|
\ a | 铃 |
\b | 退格 |
\f | 换页 |
\n | 新行 |
\r | 回车 |
\t | 制表符 |
\v | 垂直制表符 |
\ | 反斜杠 |
" | 双引号 |
’ | 单引号 |
[ | 左方括号 |
] | 右方括号 |
常用字符串操作
方法 | 作用 |
---|---|
string.upper(argument) | 返回参数的大写表示 |
string.lower(argument) | 返回参数的小写表示 |
string.gsub(mainString,findString,replaceString) | 返回用replaceString替换findString后字符串 |
string.reverse(arg) | 将传递的字符串arg反转后的字符串 |
string.format(…) | 返回格式化字符串 |
string.char(arg) 和 string.byte(arg) | 返回输入参数的内部数字和字符表示 |
string.len(arg) | 返回传递字符串arg的长度 |
string.rep(string, n)) | 通过重复相同的字符串n次返回一个字符串 |
大小写操作
string = "Lua Tutorial"
newstring = string.gsub(string,"Tutorial","Language")
print("The new string is "..newstring)
寻找和反转
string = "Lua Tutorial"
print(string.find(string,"Tutorial"))
reversedString = string.reverse(string)
print("The new string is",reversedString)
格式化字符串:在Lua编程中,有时需要以格式化的方式打印字符串。 那么可使用string.format函数格式化输出,如下所示。
string1 = "Lua"
string2 = "Tutorial"
number1 = 10
number2 = 20
-- Basic string formatting
print(string.format("Basic formatting %s %s",string1,string2))
-- Date formatting
date = 2; month = 1; year = 2014
print(string.format("Date formatting %02d/%02d/%03d", date, month, year))
-- Decimal formatting
print(string.format("%.4f",1/3))