Lua函数(function)语法与库函数 --math 表

2017-03-30  本文已影响167人  Unity开发

-->函数

-->1.无参无返回值

-->函数的定义

-- function Say()

-- print("lua")

-- end

-- -->函数得调用

-- Say()

--->也可以把函数赋值

-- var =function ()

-- print("lua")

-- end

-- var()

-->2.无参有返回值

-- var =function ()

-- return "lua"

-- end

-- print (var())

-->3.有参无返回值

-- var =function (arg)

-- print('hello'..arg)

-- end

-- var(" lua")

-->4.有参有返回值

-- var =function (a,b)

-- return a+b

-- end

-- print(var(1,2))

-->演示:函数作为参数传递给函数

-- function myFunc(parg)

-- parg()

-- end

-- var=function ()

-- print("函数内部执行函数")

-- end

-- myFunc(var)

-->演示2:0000000

-- function myPrint(param)

-- print("----俩个数的和为----",param)

-- end

-- function Add(num1,num2,funcParam)

-- result= num1+num2

-- funcParam(result)

-- --return result

-- end

-- Add(1,10,myPrint)

-->在lua中函数可以有多个返回值

-- function F(a,b)

-- return a+b,a-b,a*b,a/b

-- end

-- value,v2,v3,v4=F(10,10)

-- print(value)

-- print(v2)

-- print(v3)

-- print(v4)

-->lua中函数的可变的参数列表

-- function Sum( ... )

-- print("这是一个求和函数")

-- local args = {...}

-- print("总共传人"..#args.."个参数")

-- sum = args[1]+args[2]

-- print("和值为:",sum)

-- end

-- Sum(1,2)

---->练习1:比较俩个数的大小,返回最大的数

-- function Max(a,b)

-- -- if a>b then

-- -- print("最大值为",a)

-- -- elseif b>a then

-- -- print("最大值为",b)

-- -- end

-- return a>b and a or b

-- end

-- print(Max(1,2))

---->练习2:利用可变参数列表,使用任意一种循环求和值

-- function F( ... )

-- local args = {...}

-- sum=0

-- for i=1,#args do

-- sum=sum+args[i]

-- end

-- return sum

-- end

-- print(F(1,2,3))

---->lua 中的库函数 --math

---->向下取整

-- a=5.125

-- b=5.75

-- b=b+0.5

-- print(math.floor(a))

-- print(math.floor(b))

--->伪随机数

--print(math.random(100))

-- math.min()

-- math.max()

--math.random(math.min(),math.max())

--print(math.abs(-10)) --绝对值

--assert 和 loadstring

-- function hello()

-- print('hello World')

-- end

-- str="hello()"

-- assert(loadstring(str))()

-- a="Hello lua"

-- b="print(a)"

-- assert(loadstring(b))()

--> 数组

-- array = {"c#","unity","lua"}

-- for i=1,3 do

-- print(array[i])

-- end

--> 这里需要注意lua中的数组是从1开始的,当然你也可以

--> 自定义下标

-- array = {}

-- for i=-2,2 do

-- array[i] = i

-- end

-- for i=-2,2 do

-- print(array[i])

-- end

--> 练习1:找出数组中最大的值

-- array = {1,2,3,4,5}

-- max = 0

-- for k,v in ipairs(array) do

-- max = max < v and v or max

-- end

-- print(max)

--> 二维数组

-- array = {}

-- for i=1,3 do

-- array[i] = {}

-- for j=1,3 do

-- array[i][j] = i * j

-- end

-- end

-- for i=1,3 do

-- print(array[i][j])

-- end

-- end

--> 演示泛型迭代器

-- days = {"星期一","星期二","星期三","星期四","星期五",

-- "星期六","星期七"}

-- for index,value in pairs(days) do

-- print(index,value)

-- end

-- days = {}

-- days["key"] = "value"

-- days["key1"] = "value1"

-- days["key2"] = "value2"

-- days[1] = 2

-- days[2] = 3

-- days[3] = 4

-- for i,v in pairs(days) do

-- print(i,v)

-- end

----------> 表

gMyTable = {

["name"] = "lucy",

["age"] = 18,

["sex"] = "woman",

["name"] = "lily",

"测试",

"测试1"

}

-- gMyTable["name"] = "lucy"

-- gMyTable["age"] = 18

-- gMyTable["sex"] = "woman"

-- gMyTable[1] = "测试"

--> 遍历表

-- for k,v in ipairs(gMyTable) do

-- print(k,v)

-- end

--> 直接访问表内元素

-- print(gMyTable[1])

-- print(gMyTable["name"])

-- for k,v in pairs(gMyTable) do

-- print(k,v)

-- end

-- print(gMyTable.name)

--->定义一个表t1

t1={}

t1[1]=1

t1[2]=2

t1["key"]="修改前"

t2 = t1

t2["key"] = "修改后"

print(t2.key)  --- 修改后

print(t1.key)  --- 修改后

t2 = nil

print(t1.key)  --- 修改后

上一篇 下一篇

猜你喜欢

热点阅读