Lua学习笔记(二)

1.type函数总是返回一个字符串,因此

   print(type(type(x)))

   的输出结果是string

2.函数是作为"第一类值"来看待的,可以像操作其他值一样来操作一个函数值

3.一个全局变量在第一次赋值前的默认值就是nil

4.Lua将值false和nil视为"假",而将除此之外的其它值视为"真"。例如数字零和空字符串都视为"真"

5.科学计数法的表示形式,例如:

   0.3e12

6.Lua的字符串是不可变的值。不能像在C语言中那样直接修改字符串的某个字符,而是应该根据修改要求来创建一个新的字符串

7.字面字符串需要以一对匹配的单引号或双引号来界定。如果字符串本身包含引号,可以使用反斜杠(\)对引号进行转义

8.可以通过字符来指定字符串中的字符,数值以转义序列 "\<add>"给出。例如

   "alo\n"

   与

   "\97lo\10"

   是相同的。因为'a'的ASCII编码是97,"换行"的编码是10

9.可以用一对匹配的双方括号("[["和"]]")来界定一个字母字符串。以这种形式书写的字符串可以延伸多行,Lua不会解释其中的转义序列。如果字符串的第一个字符是一个换行字符,那么Lua会忽略它

10.如果字符串中包含"]]"或者包含已经被注释掉的代码,为了应对这种情况,需要在两个左方括号间加上任意数量的等号,如[===[。字面字符串只有在遇到了一个内嵌有相同数 量等号的双右方括号时才会结束(就前例而言,即]===])。这套机制同样适用于注释。例如以"--[[=["开始的一个块注释将延伸至"]=]"结束,如此可用于注释那些已经包含了注释块的代码

11.Lua提供了运行时的数字与字符串的自动转换。在一个字符串上应用算术操作时,Lua会尝试将这个字符串转换成一个数字,例如:

      print("10"+1)                               -->11

      在Lua期待一个字符串而得到一个数字时,它会将数字转换成字符串,例如

      print(10 .. 20)                               -->1020

      ".."是字符串连接操作符。当直接在一个数字后面输入它的时候,必须要用一个空格来分隔它们。不然,Lua会将第一个点理解为一个小数点。而第二的数字前有无空格皆可

12.若要将一个数字转换成字符串可以调用函数tostring,或者将该数字与一个空字符串相连接,例如

     print(tostring(10) == "10")                               -->true

     print(10 .. "" == "10")                               -->true

13.可以在字符串前放置操作符"#"来获得该字符串的长度

14.table是Lua中仅有的数据结构机制

15.table永远是"匿名的",一个持有table的变量与table自身之间没有固定的关联性。为了便于理解,见下例:

     a = {}

     a["x"] = 10

     b = a

     print(b["x"])                               -->10

     b["x"] = 20

     print(a["x"])                               -->20

     a和b只是对于table的引用,当一个程序再也没有对一个table的引用时,Lua最终会删除该table

16.将nil赋予table的某个元素可以删除该元素

17.a.x = 10

     等同于

     a["x"] = 10

18.Lua数组通常以1作为索引的起始值

19.长度操作符"#"用于返回一个数组的最后一个索引值(或作为其大小),例如:

      for i = 1,#a do

         print(a[i])

      end

      打印所有的行

      print(a[#a])

      打印数组a的最后一个值

      a = {}

      for i = 1,10 do

         a[#a+1] = io.read()

      end

      读取一个文件的前10行

20.函数table.maxn将返回一个table的最大正索引数,即数组数字下表的最大值

21.索引table时,"+1","01"和"1"代表了不同的条目

22.函数作为第一类值来看待。这表示函数可以存储在变量中,可以通过参数传递给其他函数,还可以作为其他函数的返回值

23.table也可以用table作为其索引,例如:

     a[{1,2,3}] = 3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值