• 前端也学一下 Lua 呀


    为什么要学 lua

    • neovim/nvchad/… 支持 lua 写配置文件
    • WezTerm 也是用 lua 写配置文件

    用 lua 写配置,其实更多的是倾向于嵌入式编程,写配置用 json/toml/yaml/xml 等文件可能更加好一点

    安装

    以 linux 为例,windows 和 macOS 差不多(也是使用 brew 安装,更加方便)

    curl -R -O http://www.lua.org/ftp/lua-5.4.4.tar.gz
    tar zxf lua-5.4.4.tar.gz
    cd lua-5.4.4
    make all test
    sudo make install
    which lua # 检查 lua 命令 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    repl 环境和文件运行

    • lua 的 repl 环境
    • 在文件编写 .lua 文件,然后使用 lua 命令运

    这里使用第二种 lua 文件运行,了解 lua 的模块化,从而能组成一个完整的程序

    第一个 lua 程序

    touch index.lua
    nvim index.lua
    
    print("hello world") 
    
    • 1
    • 2
    • 3
    • 4
    • 增加 shebang 开头注释不需要 lua 运行
    #!/usr/local/bin/lua
    
    print("hello world") 
    
    • 1
    • 2
    • 3

    变量

    • 全局变量(注意:没有声明)
    • 本地变量(使用 local 声明)
    • 函数声明变量 (使用 function 声明)
    • 表中域 t = {} t["k"] = "v"
    • 代码块中的变量 (代码使用 缩颈和关键字包含,没有 {} 包含)
    • 变量赋值* 使用 , 分割变量 x, y = y, x

    lua 类型系统

    没有类型标注,使用 type 判断类型

    类型 type 说明
    nil type(nil) -> nil nil 表示空,相当于:false。 一个未定义的变量使用时是 nil
    string type("hello world") -> string 字符串支持单双引号
    boolean type(false) -> boolean false/true
    number 3.14 * 2 -> number 双精度实浮点型
    function type(print) -> function Lua或C函数
    userdata type(io.stdin) -> userdata 表示任意存储在变量中的C数据结构
    thread type(type) -> thread 表示执行的独立线路,用于执行协同程序
    table type({}) -> table “关联数组”(associative arrays

    注释

    • 单行注释: --
    • 多行注释
    --[[print("not work, commented")
    --]] 
    
    • 1
    • 2

    字符串

    • 块状字符串 [[]] 操作符
    • 字符串拼接 .. 操作符
    • 字符串长度 #"your string" # 号操作符

    字符串的隐式操作行为,就不在这里讨论了,或者有时间在补充。

    Lua 字串操作内置函数

    函数与函数调用以及函数返回值

    • 声明一个命名函数 function end 关键字
    function fn
    • 相关阅读:
      学习记录639@python机器学习模型部署与访问实战-基于Flask
      看了 4K 经典中视频,我才知道 30 多年前的艺术家有多牛
      Mysql练习题---2级
      09-排序3 Insertion or Heap Sort(浙大数据结构)
      CSS的背景——颜色,图片,背景图片位置,
      Linux进程控制(上)
      react实战 系列 —— React 的数据流和生命周期
      C++和Python使用ROS自定义的消息类型
      安装 node 错误的配置环境变量之后使用 npm 报错
      生产者消费者问题
    • 原文地址:https://blog.csdn.net/web220507/article/details/127845931