游戏开发学习笔记——lua脚本语言——第三天(函数与字符串)

游戏开发学习笔记——lua脚本语言——第三天(函数与字符串)

FOR THE SIGMA

FOR THE GTINDER

FOR THE ROBOMASTER

简介:

第一次——参考易百教程——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))

你可能感兴趣的:(Lua脚本语言,游戏开发)