美文网首页
Lua函数(function)语法与库函数 --math 表

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

作者: Unity开发 | 来源:发表于2017-03-30 20:15 被阅读167次

    -->函数

    -->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)  --- 修改后

    相关文章

      网友评论

          本文标题:Lua函数(function)语法与库函数 --math 表

          本文链接:https://www.haomeiwen.com/subject/eubpottx.html