学习Lua笔记(二)

1.在lua中一旦循环条件设定,下面对循环变量的更改,不会对结果造成影响(避免这种情况出现)
for i=1,10,2 do
i=i+100
print(i)
end
--101,103,105,107,109

dic = {name = "lanou",age = 18}
print(#dic) --0
(1)lua中的foreach的遍历
for i,v in pairs(dic) do
print(i)
print(v)
print(i,v)
end
(2)练习,求集合中处出现频率最高的元素,并输出
arr = {4,"blue","blue","red","blue"}
dic = {} --存储数组中出现的元素=次数
--[[
for i=1, #arr do
s = arr[i]
if dic[s] then
dic[s] = dic[s]+1
else
dic[s] = 1
end
end
for i,v in pairs(dic) do
print(i,v)
end
]]
2.方法
方法可以使用一个变量来接受,这个变量就是方法名
func = function ( )
print("This is a Function")
end
print(type(func))
func()

function Sum( a,b )
print(a+b)
end
Sum(3,5)

hero = {name = "Dema",hp = 1000}
hero.attack = function ()
print("attack")
end
hero.attack()
也可以这样写
hero = {name = "hero",hp = 1000,attack = function ()
print("attack")
end}
函数的多重返回值,只需啊在return关键字后面列出返回值,用逗号隔开,多重返回值需要使用多个变量接受
al(a,b)
return a+b,a-b,a*b,a/b;
end
q,w,e,r=Cal(2,4)
print(q,w,e,r)
function func()--无返回值
end

function func1()--有一个返回值的
return "a"
end
function func2()--有两个返回值的
return "a","b"
end

x,y = func2() --x="a",y = "b"
x = func2() --x = "a",b会被丢弃掉
x,y,z =10, func2() --x = 10,y = "a",z = "b"
x,y,z =func2(),10 --z = nil,y = 10,x = "a"

x,y = func() --x = nil y=nil
x,y = func1() --x = "a",y = nil

local t = {func()} --t表示有个空的table
local t = {func1()} --t={"a"}
local t = {func2()} ---t = {"a","b"}
当多重返回值的函数调用出现在table表中,在访问表中元素是只会返回但钱函数的第一个值
local t = {func(),func2(),4}
print(t[1]) --nil
print(t[2]) --"a"
print(t[3]) --4
可以在一个函数中返回另一个函数的返回值
function MyFunc()
return func2() --返回所有值
return (func2()) --值返回一个值

end
print(MyFunc())
可变参数
function ArguenmentFun(... )
for i,v in ipairs{...} do
print(v)
end
end
ArguenmentFun(244,134,643,"aaa")
--244,134,643,"aaa"

3.加载文件通常会见到require,dofile
--实现阶乘,脚本名称Test04
function Fac(n)
    if    n<=1 then
        return n
    end
    return Fac(n-1)*n
end


loadfile函数
require:在加载一个lua文件时,会现在一个package.loaded中查找此模块是否存在,如果存 在直接返回模块,如果不存在再去加载
注意:加载文件时,保证两个文件在同一路径下
require的特点是加载一次
a = require("Test04")
print("require res = "..tostring(a))
print("5!"..Fac(5))



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值