前端也学一下 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 命令 

repl 环境和文件运行

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

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

第一个 lua 程序

touch index.lua
nvim index.lua

print("hello world") 
  • 增加 shebang 开头注释不需要 lua 运行
#!/usr/local/bin/lua

print("hello world") 

变量

  • 全局变量(注意:没有声明)
  • 本地变量(使用 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")
--]] 

字符串

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

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

Lua 字串操作内置函数

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

  • 声明一个命名函数 function end 关键字
function fn
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值