xuanll / xLua

lua programming fundation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

xLua

lua programming fundation

Basic Types

  • 字符串拼接格式print("Hei, " .. me) me是字符串变量

  • 不等 ~=

	1 ~= 0
  • 布尔
	true == not false
  • 空值nil

  • index(索引)从1开始(其他大多数编程语言索引从0开始)

  • #用来取table的长度

	-- faster way insert value
	t[#t+1] = value

p.s. Ref

  • 循环中,pairsipairsipairs只循环key为整数的元素,从下标为1的开始,碰到下标不连续或者key不是整数的则退出循环;pairs则循环整个table的所有值

  • tonumber字符串转数字

  • require引入模块

  • 不支持++这种自增操作,要知道--是注释,所以咯,笑..

  • Lua中写方法都要跟上类名,.跟类方法,:跟普通方法

  • if语句需要跟then,每个条件两边都要跟,最后的else后没有then

  • dofile("XXX")载入后每次调用可执行,loadfile("XXX")载入后不执行,require("XXX")载入后只执行第一次载入

  • 哑元(dummy varialbe,_)

	-- 返回第二个匹配的值
	local _, x = string.find(s, p)
  • lua中调用父类方法

    1. 父类 = require("父类")
    2. 子类中 父类.方法名(self, param[])调用
  • lua类变量不用local修饰 local UITerritory.logic = nil

  • 全局变量无需定义,销毁赋值为nil即可

  • 区块注释

  --[[
	comments
	--]]
  • Lua中只有falsenil的布尔值是false,其余(0和空table等)都是true

  • Lua的数字只有double型,64bits

  • Lua中的Table既不是值也不是变量,而是对象

  • userdata类型可以将任意的C数据保存到Lua的变量中

  • 求幂操作符^并没有包含到Lua core中,需要使用math.pow(a,b)

  • Lua中没有C语言的三元符(x ? a : b),但有一个替代方案(x and a) or b需要注意的是,以上方案在x为true,a为false,b为true的情况下与三元符的结果是相反的

  • [[...]]包围的字符串不需要使用\转义修饰符

  • Lua API查询 LuaSearch

  • Lua中pcall(protected call)遇到返回两个参数,有error时返回false,没有时返回true pcall官方文档

local bHasErr, result = pcall(FuncName, param1, param2, ...)
-- #运算符会忽略不连续和非数字下标
if next(t) == nil then 
    -- 表为空
    -- ...
end

About

lua programming fundation


Languages

Language:Lua 100.0%