lua学习(1)

Lua 复制代码
lua 字符串  单个引号和双引号都可



    变量的定义默认是全局的

    删除一个变量将其赋值为nil即可   如:  b=nil

    nil还可以对表中的数据进行删除,也可删除一个表

    只要变量不是nil,变量即存在




    标识符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后,

    加上 0 个或多个字母,下划线,数字(0 到 9)




    lua的命名方式不支持特殊字符,除下划线以外的特殊字符,如# % @ &是不能用来命名变量的

    lua区分大小写

    变量的命名不要用下划线加大写字母命名 保留字通常以这种方式命名

    保留字的作用就是为关键字添加一些特殊的功能

    保留字的形式:_NAME  



    lua里使用索引大多数都是从1开始的



表的定义是{}

    lua中没有字典和数组的概念,但表可以类似的表示这两个

    在lua中表的表现形式有三种,分别为tab1,tab2,tab3

    tab1:是一个空表

    tab2:这种表的形式,是以键值对的形式存储信息,可以理解为字典

          此时键的命名也要符合标识符的命名规范,tab2这种表的表现形式,

          虽然跟字典表现形式类似,但却无法以字符串,数字作为键名

          tab2这种形式的表,引用表中的数据有两种方式:

            1) 表名.键名

            2) 表名["键名"]

    tab3:这种表的形式,可以理解数组,或者是键名为1,2,3,4,5.....的字典

          像tab3这种形式的表,取表中数据只能通过 :表明[数字]

          的形式进行取值

2.可以用两个[[ ]]来表示一块字符串

  1. #:也可算中文字符串的长度
Lua 复制代码
向表中添加数据可以用两种方式添加:

                            1)表名.键名=数据

                            2)表名["键名"]=数据

当tab3通过   tab3.tt="new"  的方式添加键值对后,

再取tab3中的数据就可以采取像取tab2中的数据的方式

用

            1) 表名.键名

            2) 表名["键名"]

进行取数据  
Lua 复制代码
表的长度不固定,删除或增加一个键值对,表的长度都会动态的改变大小

同时表的键值对也不是连续的,比如tab3这种形式的表,

当把表中的键值2删除后,键值3不会顶替原来键值2的位置变成键值2

6.

Lua 复制代码
tab3中的"11","222","333","中午???","apple"要想删除

还是只能通过tab3[数字]的方式进行删除

但是tab3中的"new"这个数据却可以用tab3.tt=nil的方式进行删除
Lua 复制代码
lua中函数的定义通过关键字function来实现,函数不需要定义返回值类型,
    而且lua中的函数可以返回值,也可以不返回值。
    返回值可以返回任意类型数值
    定义函数格式:
                function 函数名(参数)
                end
    如果使用if判断语句 也需要加edn
    if判断格式: 
            if  条件 then
                 语句
            else
                语句
            end              
在lua中函数可以被当成一个数据使用,可以赋值给另一个变量,
使变量用有和函数一样的功能
Lua 复制代码
在lua中支持将函数作为参数传递给另外一个函数
lua中还支持匿名函数,即函数没有名称
匿名函数只能调用一次,而且匿名函数内的代码量要少,方便阅读
Lua 复制代码
lua中支持变量的类型进行转换,变量的类型决定于给定的数据


lua中的全局变量和局部变量:
            全局变量:任意定义的变量一般来说都是全局变量
            局部变量:用local 定义的变量为局部变量,
                     局部变量的生命周期截至到所在语句块。

注意:如果局部变量定义在函数内,则局部变量的生命周期截至到函数结束
    但如果局部变量定义在函数外,那么这个局部变量的生命周期截至到
    这个lua文件运行结束,此时局部变量和全局变量的生命周期时一样的
    但是如果在函数中定义个一个变量,这个变量也是全局变量,在函数里面
    定义的变量也是全局变量,在函数之外的语句当中仍然有效

函数里面定义的全局变量,如果不引用函数,变量无法生效

制作代码块:
            do
            end
    就是做一些事情,相当于一个子代码块
相关推荐
Theodore_10223 分钟前
ES6(8) Fetch API 详解
开发语言·前端·javascript·ecmascript·es6
胡斌附体38 分钟前
qt socket编程正确重启tcpServer的姿势
开发语言·c++·qt·socket编程
白露与泡影1 小时前
Java面试题及答案整理( 2025年 4 月最新版,持续更新)
java·开发语言
YueiL1 小时前
C++入门练习之 给出年分m和一年中的第n天,算出第n天是几月几号
开发语言·c++·算法
冷凝女子1 小时前
【QT】获取文件路径中的文件名,去掉后缀,然后提取文件名中的数字
开发语言·数据库·qt
我不想当小卡拉米1 小时前
C++:继承+菱形虚拟继承的一箭双雕
开发语言·jvm·c++
weixin_457885821 小时前
JavaScript智能对话机器人——企业知识库自动化
开发语言·javascript·自动化
孤独得猿2 小时前
Qt常用控件第一部分
服务器·开发语言·qt
慕斯策划一场流浪2 小时前
fastGPT—nextjs—mongoose—团队管理之团队列表api接口实现
开发语言·前端·javascript·fastgpt env文件配置·fastgpt团队列表接口实现·fastgpt团队切换api·fastgpt团队切换逻辑
时光呢2 小时前
JAVA常见的 JVM 参数及其典型默认值
java·开发语言·jvm