文档章节

lua 入门(一)

鸟屁不会的程序猿
 鸟屁不会的程序猿
发布于 2016/01/29 18:08
字数 498
阅读 171
收藏 9

写这些都是针对有经验又不想看文档的程序员

Lua 中有八种基本类型: nil、boolean、number、string、function、userdata、 thread 和 table。

 nil相当于其它语言的null,

 false和nil为假,其它均为真

 表、函数、线程、以及完全用户数据在 Lua 中被称为 对象: 变量并不真的 持有 它们的值,而仅保存了对这些对象的 引用。

 table 是hash随机存储key,所以for循环输出一个table时并不会按定义时的顺序输出

变量定义

 name = value          --全局变量

 local name = value  --局部变量   

 local tbl      = {}       --空的table

 tbl.name     =  value

 tal['name']   =  value

语句控制结构

while exp do block end

repeat block until exp

if exp then block {elseif exp then block} [else block] end

goto 语句

 goto Name     --goto到指定标签名 Name 首字母不能是小写 可以为 "_"

:: Name ::        --标签名

for 语句

 for val=e1,e2,e3 do block end 
 例:
      for val=1,9 do print(val) end --输出1到9 
 

 for namelist in explist do block end

例:

 local list = {t=1,e=2,s=3,t=4}

 for k,v in pairs(list) do print(k,v) end

函数定义

该语句

 function f () body end

被转译成

 f = function () body end

该语句

 function t.a.b.c.f () body end

被转译成

 t.a.b.c.f = function () body end

该语句

 local function f () body end

被转译成

 local f; f = function () body end


PS: 函数使用需要先声明

其它:

 取字符串长度 #str

 字符连接:“..”

 table 下标是从1开始

string.gsub 简单例子

local arr = {bidword=12321,plandid=3456}

local x = "http://catct.cn/?bidword={bidword}&{plandid}"

local str = string.gsub(x,"{(%w+)}",arr)

--输出结果:http://catct.cn/?bidword=12321&3456

函数调用(self 的使用)


local x = {}

function x:test( str )

    print(str)              --call function 

    self.echo ('test')    --test

    self:echo ('test')    --table: 0xabee40     test

    self.print ('test')     --输出空

    self:print ('test')     --test

end


function x.echo( ... )

    print(...)

end


function x:print( ... )

    print(...)

end


x:test('call function')

参考文档: http://cloudwu.github.io/lua53doc/manual.html

© 著作权归作者所有

共有 人打赏支持
鸟屁不会的程序猿
粉丝 10
博文 27
码字总数 8148
作品 0
朝阳
程序员
私信 提问
加载中

评论(2)

鸟屁不会的程序猿
鸟屁不会的程序猿

引用来自“抢地主”的评论

就喜欢入门的东西
就是个笔记,带了一点平时注意的东西
抢地主
抢地主
就喜欢入门的东西
100行lua代码实现简单目录浏览器

lae下载地址: https://github.com/ouloba/laetool.git lae下载地址(国内):https://pan.baidu.com/s/1ckMy0Q 相关视频: http://www.tudou.com/listplay/aly7NDWzsQ/AaqZ81jIt-k.html 教程: l......

ouloba
2016/06/25
3.8K
7
Openresty最佳案例 | 第2篇:Lua入门

转载请标明出处: http://blog.csdn.net/forezp/article/details/78616622 本文出自方志朋的博客 什么是lua Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的...

forezp
2017/11/23
0
0
Lua学习笔记

注: 标题中带“Cocos”的为Lua结合Cocos的文章。 【基础模块】 Lua(1) ——Cocos之Code IDE入门指南 Lua(2) ——基础语法 Lua(3) ——Cocos之语法糖class Lua(4) ——基本库函数 Lua(5) ——...

shahdza
2015/10/08
0
0
丁小未/Aladdin_XLua

#Aladdin_XLua [Unity XLua]热更新XLua入门(一)-基础篇 前言 前段时间腾讯开源了一个内部热更框架XLua在Unity开发群里引起一阵热议,也受到广大开发者的热捧,然后我当然也抱着好奇的心去学习...

丁小未
2017/01/14
0
0
cocos2d-x lua代码臃肿,有没有解决方案?客户端动态更新其他好建议吗?

近期开始学习并使用lua。软件分层的思想全世界可以用。但是纯lua的开发模式实现却很难使用多态和封装,也许是我水平低。面临的实际问题却是代码臃肿,不断的循环遍历(我在做解析文本)。我有...

王敬哲
2014/06/10
1K
4

没有更多内容

加载失败,请刷新页面

加载更多

聊聊storm的AggregateProcessor的execute及finishBatch方法

序 本文主要研究一下storm的AggregateProcessor的execute及finishBatch方法 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout......

go4it
今天
3
0
大数据教程(7.5)hadoop中内置rpc框架的使用教程

博主上一篇博客分享了hadoop客户端java API的使用,本章节带领小伙伴们一起来体验下hadoop的内置rpc框架。首先,由于hadoop的内置rpc框架的设计目的是为了内部的组件提供rpc访问的功能,并不...

em_aaron
今天
4
0
CentOS7+git+github创建Python开发环境

1.准备CentOS7 (1)下载VMware Workstation https://pan.baidu.com/s/1miFU8mk (2)下载CentOS7镜像 https://mirrors.aliyun.com/centos/ (3)安装CentOS7系统 http://blog.51cto.com/fengyuns......

枫叶云
昨天
3
0
利用ibeetl 实现selectpicker 的三级联动

1. js 直接写在html页面上面,ibeetl 就可以动态地利用后台传上来的model List ,不需要每次点击都要ajax请求后台 2. 使用selectpicker 的时候,除了对selecct option的动态处理后,还需要 $("#...

donald121
昨天
3
0
Android SELinux avc dennied权限问题解决方法

1. 概述 SELinux是Google从android 5.0开始,强制引入的一套非常严格的权限管理机制,主要用于增强系统的安全性。 然而,在开发中,我们经常会遇到由于SELinux造成的各种权限不足,即使拥有“...

TreasureWe
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部