2020-05-21-lua常用api

1.参考资料

https://www.runoob.com/lua/lua-variables.html

2.注释

-- 这是注释
print("hello")

--[[
  这是多行注释
  这是多行注释
]]--

3.约定俗成

  • 一般约定一下划线开头连接一串大写字母的名字,比如_VERSION会认作lua内部全局变量。
  • 一般情况,变量就是全局的
  • 全局变量不需声明,给一个变量赋值之后就相当于创建了这个全局变量。
  • 访问没创建的全局变量获得的值为nil,相当于js的null,如果你想删除一个全局变量,旧赋值nil。
  • nil作比较的时候加双引号:
> type(x)
nil
> type(x) == nil
false
> type(x) == "nil"
true

4.基础类型:8种

nil,boolean,number,string,function,userdata(表示任意存储在变量中的C数据结构),thread(表示执行的独立线路,用于执行协同程序,即线程),table(数组)

5.8种基础类型的使用方式

  • 可以用双引号,单引号,以及"[[]]"代表字符串
string1 = "this is string"
string2 = 'this is string'
string3 = [[
  <html>
  <head></head>
  <body>
      <a href="http://www.runoob.com/">菜鸟教程</a>
  </body>
  </html>
]]
  • 算数运算符的+就是算数中的加
> print("2"+"3")
5
  • table类型类似于js的数组和对象
-- 创建一个空的table
local tbl1 = {}
-- 创建一个有值的table
local tbl2 = {"apple", "pear", "orange"}
local tbl3 = {1 = "a", 2 = "b", 3 = "c"}

-- table.lua脚本内容
a  = {}
a["key"] = "value"
key = 10
a[key] = 22
a[key] = a[key] + 11
-- table也可以这么取值
print(a.key)
for k, v in pairs(a) do
  print(k.. " : " ..v)
end
-- 执行上述脚本
value
key : value
10 : 33
  • local声明的是局部变量

6.方法

type: 测试类型

print(type("hello"))    --> string
print(type(true))        --> boolean

赋值

a, b = 10, 11   --> a = 10; b = 11

--[[
 当变量个数和值的个数不一致时,Lua会一直以变量个数为基础采取以下策略:
 a. 变量个数 > 值的个数             按变量个数补足nil
 b. 变量个数 < 值的个数             多余的值会被忽略
]]
a, b, c = 0, 1   --> a = 0, b = 1, c = nil
a, b  = 0, 1, 2  --> a = 0, b = 1

计算字符串长度:用#,放在字符串前面

> len = "www.aaa.com"
> print(#len)
11
> print(#'www.aa.com')
10

for循环

-- for循环有4种:while循环,for循环,repeat...until,嵌套循环
-- 终止或跳过某循环:break(退出当前循环), goto(将程序控制点转移到下一个标签处)
-- while循环,执行前先判断条件
while(condition) do
  something()
end

-- 无线循环
while(true) do
  something()
end

-- for循环,可指定循环次数
a = {name="clw", age="15"}
for k,v in paris(a) do
  print(k,v)
end

-- repeat...until,先执行一次,然后判断条件,直到条件为真停止
repeat
  something()
until(condition)

-- table.lua脚本内容
a  = {}
a["key"] = "value"
key = 10
a[key] = 22
a[key] = a[key] + 11
for k, v in pairs(a) do
  print(k.. " : " ..v)
end
-- 执行上述脚本
key : value
10 : 33

-- table2.lua脚本内容
local tbl = {"a", "b", "c"}
for key, val in pairs(tbl) do
  print("key", key)
end
-- 执行结果
key   a
key   b
key   c

-- table3.lua脚本内容
a3 = {}
for i=1, 10 do
  a3[i] = i
end

if判断以及函数function

-- if

function jisuan(n) 
  if(n == 0) then
    return 1
  elseif (n<0) then
    return '0'
  else
    return n * jisuan(n-1)
  end
end
print(jisuan(5))     --> 120
jisuan2 = jisuan
print(jisuan2(5))   --> 120
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352

推荐阅读更多精彩内容

  • Lua内部采用一种通用的基础数据结构来表示所有数据类型,Lua语言及其精简,只有字符串和表两种最基本的数据结构。然...
    JunChow520阅读 2,309评论 0 1
  • Lua 全教程 本文目录 Lua 简介 Lua 版本 Lua 环境开发工具软件包管理分析和调试 基础概念常量和标识...
    Hello_Muay阅读 5,477评论 0 2
  • 类型与值 lua 是动态类型的语言 在语言中没有类型定义的语法 每个值都携带有它的类型信息 8种基础类型 用 ty...
    跃千山阅读 249评论 0 1
  • 开篇 1、几个连续语句之间不需要分割符,但也可以使用分号分割。 比如: a = 1 b = 2等价于a = 1; ...
    小飞不会飞_阅读 1,042评论 2 10
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,783评论 0 38