lua学习--记录(2)

1.lua函数可以返回多个返回值,在return后要返回的值得列表即可返回多值

2.lua总是调整函数返回值的个数去适应调用环境,当作为一个语句调用函数时,所有返回值被忽略

3当作为表达式调用函数,有以下几种情况:

a.当调用作为表达式的最后一个参数或者仅有一个参数时,根据变量的个数函数尽可能多的返回多个值,不足的补nil,超出舍去

b.其他情况,函数调用仅仅返回第一个值

4.函数调用作为函数参数被调用时,和多值赋值一样

5.函数调用在表的构造函数中初始化时,和多值赋值一样


table的初始化1

table = { a = 10, b = 20, c = 30};
print(table["b"]);
table中每项都是key=value 形式;
key只能是字符串,但是不加引号;
通过key访问table时,这时,b必须有引号。


table的初始化2

table = {10, a = 20, 30,40};
print(table[1]);
print(table[2]);
print(table[3]);
table中可以出现没有key的项,这时,Lua会将table当做数组,项的key就是它在数组中的下标(从1开始)
例2中:table[1]为10; table[2]为30; table[3]为40、 即“a=20”会被跳过。
综上发现,table是一个数组和字典的混合体。


table初始化3

可以把table类型看作是一个数组。只是 C语言的数组,只能用正整数来作索引; 在Lua中,你可以用
任意类型的值来作数组的索引, 但这个值不能是 nil。 同样,在C语言中,数组的内容只允许一种类型;
在 Lua中,你也可以用任意类型的值来作数组的内容,nil也可以。
注意三点:
     第一,所有元素之间,总是用逗号 "," 隔开;
     第二,所有索引值都需要用 "["和"]" 括起来;如果是字符串,还可以去掉引号和中括号;即如果
没有[]括起,则认为是字符串索引
     第三,如果不写索引,则索引就会被认为是数字,并按顺序自动从 1往后编;
例如:
tt = {"hello", 55};                                      //表中可以不同类型
table = { [tt] = "table",["flag"] = 5, key=11, 20 };
print(table.key);        //11
print(table[tt]);        //table
print(table["flag"]);    //5
print(table[1]);         //20


自己写的

local m = {80, tt = "table", 90, ["flag"] = 5, key=11, 20 }
print(m.flag)
print(m["flag"])

结果:5   5


local function m()
print("hello")
return 'a','b','c'
end 
local e, r, t = 1, m(), 5
print(e, r, t)
print(m())

local function m()
print("hello")
return 'a','b','c'
end 
local e, r, t = 1, m(), 5
print(e, r, t)
print(m())

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值