Lua学习笔记-1

  • 逻辑操作符:
      对于a and b来说,如果a为真,则返回b,否则返回a
      对于a or b来说,如果a为真,则返回a,否则返回b
  • 取模运算
      a % b == a - floor(a / b) * b
      a % 1 :取a的小数部分
      a - a % 1 :取a的整数部分
      a - a % 0.01 : 精确到a的两位小数
  • 块注释及其技巧
  • 字符串
      字符串不可变,可以用gsub在原有的基础上创建一个全新的字符串
      a = “abc”
      b = string.gsub(a,”a”,”test”)
      b –> testbc
    在Lua中,构造式第一个元素的索引为1而非0
  • table
    疑惑点:
list = nil
for line in io.lines() do
    list = {next = list,value = line}
end

为何这就能够创建了一个链表list呢???
想明白了:类似于栈,实现了一个倒叙的链表

polyline = {color = "blue",thickness = 2,npoints = 4,
            {x = 0, y = 4},
            {x = -10,y = 0},
            {x = 10, y = 1},
            {x = 0, y = 1}
}

polyline[1].y = 4
polyline[2].x = -10

由此可以知道Lua中的table不同于C中的数组,利用列表初始化时其默认的首元素的索引为1,但是如果利用记录风格初始化时,起首元素的索引时根据索引的键值来确定的,也就是说,Lua会根据键值先去查找该键值所在的地址,然后取出其中的内容。
如果需要用表达式作为键值,则需要使用[]来表示,例如i = 10;polyline = {[i + 10] = “ab”};则polyline[20] = ab
构造式{“r”,”g”,”b”}等价于{[1] = “r”,[2] = “g”,[3] = “b”}
问题:
如果是这个呢?{[“1”}] = “r”,[“2”] = “g”,[“3”] = “b”}

  • 语句
    a,b,c = 0 这里表示a = 0,b = c = nil
    a,b,c = 0,0,0 三者都为0
    多重赋值的时候先计算右侧的值后再进行赋值
    x,y = y,x
    执行后则x,y的值会交换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值