LUA语法笔记

本文详细介绍了Lua脚本语言的基本使用环境搭建、语句块执行、语法知识、函数应用、编译方法、C包整合等内容。通过实例演示了如何创建、运行Lua脚本,理解基本数据类型与操作,深入探讨了函数、表、表达式、局部变量及控制流程语句,并展示了Lua在C语言环境中的应用与动态编译技术。
lua 是个小巧的脚本语言,但缺乏强大的库的支持,一般配合C/C++等宿主语言,不单独使用。
一 环境
    下载安装后,将lua主目录添加入环境变量比如LUA_HOME = f:\Program Files (x86)\Lua\5.1,启动控制台,输入lua,能进入lua控制台.
第一个lua脚本,  新建一个文本文件,输入print("hello world")     然后保存为hello.lua,  进入入控制台输入lua hello.lua. 即可看到hello world 表示执行成功。
要退出可以通过执行os.exit()来退出lua

二  语句块
     一个lua脚步文件或控制台模式下每一行都是一个块。lua可以执行一系列的块,用参数-l  , 例如有a,b两个文件链接到一起执行,lua -la -lb;  参数-i
是进入命令行模式。另一种链接方式是使用dofile函数, 例如dofile("a.lua")

三  语法知识
     注意事项:lua是大小写敏感的,单行注释--,  多行注释--[[ --]]
     基本数据类型:nil  boolean  number string  userdata  function  thread  table。  type函数可以取得变量或值的类型。
    nil :相对于空。
    boolean: 值为true或false,值得一提的是lua的控制结构除了false和nil以外,其它都为真,包括0和空串。
    string:是不可修改的。lua可以高效处理长字符串,1M以上的字符串很常见,可以使用单引号或双引号来表示string  '\'为转义字符,还可以用\ddd来表示字符;除此之外还可用[[]]来表示字符串,这种情况下可以包含多行,可以嵌套但不会解释转义序列,如果第一个字符数换行符会被自动忽略掉。lua会自动在string和number之间转换,例如print("10"+1)   输出11, print("hello"+1)   错误,  可以使用io,read()来读取数据
    fuction: 函数也是一类数据,这意味着函数可以储存在变量中,可以作为别的函数的参数,也可作为返回值。
    userdata: 可以把C的数据存储在变量中,userdata在lua中只定义了赋值和比较的操作;用于描述应用程序或者使用C实现的库创造的类型。例如用标准I/O来描述文件。
   table: 表的构造器是{}, 类似数组初始化,例如day = {"sunday","monday","tuesday","wenesday","thursday","friday","saturday"},引用类似数组,print(day[1])  输出monday, 表可以用任何表达式初始化,可以带下标指定day={[0]="sunday",[1]="monday",[2]="tuesday",[3]="wenesday",[4]="thursday",[5]="friday",[6]="saturday"},  也可以类似这样a = {x=0, y=1,z=3}
    表达式: 二元运算符+-*/   一元运算符 -   关系运算符 <  >  >=  <=  == ~=,   比较对象时,同一个对象==为true ~=为false;     逻辑运算符:  and   or   not    连接运输符  ..
   局部变量  :  local 变量名
   语句: if语句  if  条件  then  执行体  end       if  条件  then  执行体1 else 执行体2  end      if  条件  then  执行体1 elseif  条件2  then  执行体2 elseif ... else ... end
              while语句   while  条件  do    ....   end
              repeat-util语句    repeat .....  util 条件
              for 变量=表达式1,表达式2,表达式3  do  ....  end
四: 函数    
        基本结构为  function  函数名 (参数表)
                               函数体
                            end
       LUA的函数可以返回多个值,例如s,  e  = string.find ("hello lua users","lua")
       可变参数:LUA将参数放在一个叫arg的表中,arg表中还有一个域n表示参数个数   例如  fucntion a (x, y ...) end     f(3,4,5,6)   arg={5,6,n=2}
五: 编译
          动态编译:dofile  dostring loadfile   loadstring  它们分别从文件和字符串加载其中的语句块
             例如:  从字符串生成函数对象,func = loadstring("local n=1 n=n+5 return n")     print(func()) 结果6
             require 与dofile功能相同,不同点是require会搜索目录加载文件,require会防止加载重复文件, 
六:C包
      
     

               

采用PyQt5框架与Python编程语言构建图书信息管理平台 本项目基于Python编程环境,结合PyQt5图形界面开发库,设计实现了一套完整的图书信息管理解决方案。该系统主要面向图书馆、书店等机构的日常运营需求,通过模块化设计实现了图书信息的标准化管理流程。 系统架构采用典型的三层设计模式,包含数据存储层、业务逻辑层和用户界面层。数据持久化方案支持SQLite轻量级数据库与MySQL企业级数据库的双重配置选项,通过统一的数据库操作接口实现数据存取隔离。在数据建模方面,设计了包含图书基本信息、读者档案、借阅记录等核心数据实体,各实体间通过主外键约束建立关联关系。 核心功能模块包含六大子系统: 1. 图书编目管理:支持国际标准书号、中国图书馆分类法等专业元数据的规范化著录,提供批量导入与单条录入两种数据采集方式 2. 库存动态监控:实时追踪在架数量、借出状态、预约队列等流通指标,设置库存预警阈值自动提醒补货 3. 读者服务管理:建立完整的读者信用评价体系,记录借阅历史与违规行为,实施差异化借阅权限管理 4. 流通业务处理:涵盖借书登记、归还处理、续借申请、逾期计算等标准业务流程,支持射频识别技术设备集成 5. 统计报表生成:按日/月/年周期自动生成流通统计、热门图书排行、读者活跃度等多维度分析图表 6. 系统维护配置:提供用户权限分级管理、数据备份恢复、操作日志审计等管理功能 在技术实现层面,界面设计遵循Material Design设计规范,采用QSS样式表实现视觉定制化。通过信号槽机制实现前后端数据双向绑定,运用多线程处理技术保障界面响应流畅度。数据验证机制包含前端格式校验与后端业务规则双重保障,关键操作均设有二次确认流程。 该系统适用于中小型图书管理场景,通过可扩展的插件架构支持功能模块的灵活组合。开发过程中特别注重代码的可维护性,采用面向对象编程范式实现高内聚低耦合的组件设计,为后续功能迭代奠定技术基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值