zoukankan      html  css  js  c++  java
  • Unity热更新02-Lua基础-06-Lua函数

    print("**********函数************")
    --function 函数名()
    --end
    
    --a = function()
    --end
    print("**********无参数无返回值************")
    function F1()
    	print("F1函数")
    end
    F1()
    --有点类似 C#中的 委托和事件
    F2 = function()
    	print("F2函数")
    end
    F2()
    
    print("**********有参数************")
    function F3(a)
    	print(a)
    end
    F3(1)
    F3("123")
    F3(true)
    --如果你传入的参数 和函数参数个数不匹配
    --不会报错 只会补空nil 或者 丢弃
    F3()
    F3(1,2,3)
    print("**********有返回值************")
    function F4(a)
    	return a, "123", true
    end
    --多返回值时 在前面申明多个变量来接取即可
    --如果变量不够 不影响 值接取对应位置的返回值
    --如果变量多了 不应 直接赋nil
    temp, temp2, temp3, temp4 = F4("1")
    print(temp)
    print(temp2)
    print(temp3)
    print(temp4)
    
    print("**********函数的类型************")
    --函数类型 就是 function
    F5 = function( )
    	print("123")
    end
    print(type(F5))
    
    print("**********函数的重载************")
    --函数名相同 参数类型不同 或者参数个数不同
    --lua中 函数不支持重载 
    --默认调用最后一个声明的函数
    function F6()
    	print("Unity")
    end
    function F6(str)
    	print(str)
    end
    
    F6()
    
    print("**********变长参数************")
    function F7( ... )
    	--变长参数使用 用一个表存起来 再用
    	arg = {...}
    	for i=1,#arg do
    		print(arg[i])
    	end
    end
    F7(1,"123",true,4,5,6)
    
    print("**********函数嵌套************")
    function F8()
    	return function()
    		print(123);
    	end
    end
    f9 = F8()
    f9()
    
    --闭包
    function F9(x)
    	--改变传入参数的生命周期
    	return function(y)
    		return x + y
    	end
    end
    
    f10 = F9(10)
    print(f10(5))
    

  • 相关阅读:
    编程思想
    为什么静态成员、静态方法中不能用this和super关键字
    C#中静态与非静态方法比较
    数组,集合,列表的使用与区别
    2017-3-23 网络IP
    [精彩] 关于DB2的内存分配
    DB2 常用命令
    SQL0973N在 "<堆名>" 堆中没有足够的存储器可用来处理语句
    DB2通用数据库性能调整的常用方法
    创建DB2数据库联合对象
  • 原文地址:https://www.cnblogs.com/unitysir/p/13890686.html
Copyright © 2011-2022 走看看