Lua语言笔记(在更)

这篇博客深入介绍了Lua语言的交互模式,如何在非交互模式下使用print函数,以及 Lua 的词法规范,包括标识符、注释和分隔符的使用。此外,还讲解了Lua中的全局变量、类型和值,如nil、boolean、number、string、function、table等,并提到了type函数。文章还提到了独立的Lua解释器及其在脚本执行中的应用,以及arg表的使用。最后,讨论了Lua支持的可变长参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

交互模式

  • lua -i-i参数用于在运行完其他命令行参数后进入交互模式
  • 不在交互模式下必须把表达式包在函数print的调用中
  • 如果不想输出结果,可以在行末加上一个;

词法规范

  • 标识符由任意字母、数字和下划线组成的字符串(不能以数字开头)

  • _+大写字母(特殊用途)

  • _+小写字母(哑变量)

  • 注释

    • 单行注释--
    • 多行注释
      --[[ 多行注释 ]]
  • 分隔符;

    • 增加可读性,不是必须的
  • 表达式之间的换行不起任何作用

全局变量

  • 无须声明即可使用
  • 使用未经初始化的全局变量,得到的结果时nil
  • nil赋值给全局变量时,Lua会回收该全局变量

类型和值

  • Lua语言有8种基本类型

    • nil(空)

      • nil赋值给全局变量时,则相当于将其删除(Lua会回收)
    • boolean(布尔)

      • 除false和nil之外的所有值都为真(与C++差异)
      • not运算符永远返回boolean类型的值
        • not nil – true
        • not false – true
    • number(数值)

    • string(字符串)

    • userdata(用户数据)

      • 允许把任意的C语言数据保存在Lua语言变量中
    • function(函数)

    • thread(线程)

    • table(表)

  • type函数

    • 获取一个值对应的类型
    • 返回值永远是一个字符串

独立解释器

  • 是一个可以直接使用Lua语言的小程序

  • 源代码文件第一行以井号#开头,那么解释器在加载文件时会忽略这一行,主要是为了方便在POSIX系统中将Lua作为一种脚本解释器来使用

  • 假设独立解释器位于/usr/local/bin

    • #!/usr/local/bin/lua
      #!/usr/bin/env lua
      • 不需要显式调用Lua语言解释器也可以直接运行Lua脚本
  • 编译器在运行代码前会创建一个名为arg的表

    • 索引0中保存的内容为脚本名
      • arg[0]
    • 索引1保存的内容为第一个参数
      • arg[1]
    • 以此类推
  • Lua语言也支持可变长参数(…)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值