Lua 基础语法

1. Lua 基础语法

最好的书籍 《Programming in Lua》
语法测试网站:http://www.lua.org/demo.html
其它书籍:
http://astore.amazon.com/lua-store-20
https://store.feistyduck.com/

输出语句

print "Hello from Lua!"    -- 不带括号
print("Hello from Lua!")   -- 带括号,两者等价

或者

io.write("hehe")

注意,io.write()是不会换行的,可以使用print()来实现换行。

-- 中间使用逗号,输出时两变量之间会有一个 tab 隔开
print(a, b)

-- 字符串格式转换
print(string.format(123))

-- 使用 [[ ]] 多行字符串,中间的字符串不需要加双引号""
print(
[[
hello
world
]])

Lua 的常识

Lua 代码是可以直接运行的。对,不需要 main 函数。

Lua 导入文件 require

搜索目录加载文件,并判断是否文件已经加载,避免重复加载同一文件。
其中,“.lua” 可以省略。

require "hello.lua"
require("hello2")
require "hello3"

Lua 数据类型

  • 定义一个变量的时候,不需要写数据类型
  • 数据类型
	nil			 空,a = nil 相当于删除
	boolean		 布尔
	number		 数值 12, 12.34
	string		 字符串
	table		 表类型
	function	 函数
	userdata	 自定义数据
	thread		 线程

注释

  • 单行注释使用“–”即可:
-- 单行注释
  • [[多行注释以“–[[”开始,以“–]]”结束]]:
--[[
     代码块
--]]

取消多行注释:

---[[
--]]

变量

变量名
  • 变量名由字母、数字、下划线构成
  • 不以数字开头
  • 在Lua中以下划线"_“开始的参数命名通常代表特殊的值,如(”_VERSION"),所以尽量不要使用以下划线开始命名。
print(_VERSION)
  • 变量名不能与关键字相同,Lua 关键字如下:
nil
local
true, false
and, or, not
if, else, elseif, then
for, while, do, break, in
repeat, return, until
function, end
变量规则
  • 在Lua中所有的变量和关键字都是大小写敏感的
  • 变量有值的时候才有类型,否则变量本身是无类型的
a=1
b="abc"
c={}
d=print

print(type(a))
print(type(b))
print(type(c))
print(type(d))

输出

number
string
table
function
变量作用域

在 Lua 中,默认声明的变量为全局变量,以 local 为修饰符的为局部变量,局部变量只在所属的语句块内有效。

变量赋值
  • 可以一对多个变量赋值。
    规则:如果等号(“=”)右边多了,则舍弃,左边多了,则赋值为空(nil)
a, b, c, d, e = 1, 2, "three", "four", 5
print(a,b,c,d,e)
  • 表达式 a,b=b,a 表示a和b的值交换。
    注:类型不一样照样可以交换。
-- 会先计算右边所有的值,然后再执行赋值操作
a, b = 10, 2*x		-- a = 10; b = 2*x

-- 变量个数和值的个数不一致
-- 1,变量个数大于值的个数:自动补 nil
-- 2. 变量个数小于值的个数:忽略多余的值
a, b = 10			-- a = 10, b= nil
a	 = 10, 20		-- a = 10, 多余的 20 被忽略

代码块

-- 代码块 do end
do
	local a = 10	-- a 为局部变量,仅在代码块中有效
	print(a)		-- 输出 10
end
print(a)	-- 输出 nil

特别总结

  • 语句末尾不需要加分号 ;
  • 语句块不是用花括号 {}, 而是 do 语句块 end 表示语句块的开始和结束。花括号 {} 表示的为一个表结构
  • 运算符 ^:表示幂运算。(即 2^10 = 1024
  • 不等于号为: ~=
  • 变量的定义不需要加数据类型,直接 a = 10
  • 且(and)、或(or)的运算返回值不是 true/false。而是运算符左边或右边的变量值。
  • 除了 nilfalse 为假,其余的均为真。( 0 和 空串 "" 也为真)。
  • 变量的赋值可以多个一起赋值。( a,b,c = 10,20,30 )。
  • 函数可以返回多个值。( return a,b,c
  • Lua 中数据结构类型只有唯一的一个:表(table)。它既可以表示一个数组,也可以是一个数据结构,或者是一个类。
  • 数组下标从 1 开始,而不是 0
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云满笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值