一、lua中的数据类型

1、数值

a = 1
b = 1.2

2、字符串

c = "hello world"

3、布尔

d = true
f = false

4、表(Table) = 数组+映射

4.1、数组

a = {}
a[1] = 10
a[2] = "hello"
a[3] = true --or a = {10, "hello", true}

4.2、映射

a = {}
a["hello"] = 1
a[3] = false --or a = {
["hello"] = 1,
[3] = false
}

二、函数

单返回值示例:

function add(a, b)
local c = 1
return a + b + c
end

其中的 c 只在函数内部有效

多返回值示例:

function addTwo(a, b)
c = 1
return a + b, a - b
end
--调用
a, b = addTwo(1, 2)

其中的 c 全局有效(应尽量避免这种写法)

三、表达式

and、or、not、..用法示例:

a = true and false
b = true or false
c = not true
d = "a".."b"

四、if语句

格式为:

if 表达式 then
代码块一
elseif 表达式 then
代码块二
else
代友块三
end

五、while语句

格式为:

while 表达式 do
循环体
end

六、for语句

1、循环

for i = 10, 1, -1 do
print(i)
end

2、遍历

a = {
['foo'] = 1,
[100] = true
}
for k, v in pairs(a) do
print(k, v)
end

其中pairs()为迭代器,类似的还有 ipairs() 迭代器,ipairs()只迭代Table中的数组部分

七、包(package)

示例:

foo.lua文件:

local class = {}

function class.foo(a, b)
return a + b
end return class

调用这个包:

local c = require("foo")
print(c.foo(1, 2))

注:这两个文件要在同一目录下

八、系统库

1、取对象长度:#t

2、table系列方法:

table.insert(t, index)
table.remove(t, index)
table.sort
table.move
table.pack
table.uppack
table.concat

3、字符串格式化:string.format("hi %d", 2)

4、数值转为字符串:tostring(3.14)

5、字符串转数值:tonumber("3.14")

6、删除映射:

local t = {}
t.a = 1
t.b = 2
--删除t.a用
t.a = nil

7、判断对象类型:type(t)

lua基础知识笔记的更多相关文章

  1. JS基础知识笔记

    2020-04-15 JS基础知识笔记 // new Boolean()传入的值与if判断一样 var test=new Boolean(); console.log(test); // false ...

  2. Java多线程基础知识笔记(持续更新)

    多线程基础知识笔记 一.线程 1.基本概念 程序(program):是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码,静态对象. 进程(process):是程序的一次执行过程,或是 ...

  3. Step By Step(Lua基础知识)

    Step By Step(Lua基础知识) 一.基础知识:    1. 第一个程序和函数:    在目前这个学习阶段,运行Lua程序最好的方式就是通过Lua自带的解释器程序,如:    /> l ...

  4. javascript基础知识笔记-自用

    笔记内容根据个人基础知识不足不明白之处做的记录.主要看的:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript 1.变量,变量的名字又叫标识符 ...

  5. Mysql之基础知识笔记

    Mysql数据库基础知识个人笔记 连接本地数据库: mysql -h localhost -u root -p 回车输入数据库密码 数据库的基础操作: 查看当前所有的数据库:show database ...

  6. java基础知识-笔记整理

    1.查看已安装jdk文件路径 CMD输入java -verbose.   2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...

  7. JavaScript基础知识笔记

    做前端几年了,一直疏于整理归纳,所以这两天把基础看了一遍,加上使用经验,整理了基础知识中关键技术,旨在系统性的学习和备忘.如果发现错误,请留言提示,谢谢! 重要说明:本文只列举基础知识点,中级和高级内 ...

  8. Javascript 基础知识笔记

    标签(空格分隔): 廖老师学习笔记 javascript 基本入门 根据廖雪峰老师官网,自己看后的简单笔记 第一小节 基本知识 <script type="text/javascrip ...

  9. 初学MySQL基础知识笔记--01

    本人初入博客园,第一次写博客,在今后的时间里会一点点的提高自己博客的水平,以及博客的排版等. 在今天,我学习了一下MySQL数据库的基本知识,相信关于MySQL的资料网上会有很多,所以我就不在这里复制 ...

随机推荐

  1. 给于用户Agent权限设置

    问题:有一个用户需要有create\alter\drop job人权限.默认是只有sysadmin成员才有这个权限.肯定不能将用户放到这个组 答案:所有JOB都属于msdb库中读取和写入信息.所以,肯 ...

  2. 【转】DDMS中线程状态的说明

    因为最近的工作中需要关注APP中的线程,在DDMS中可以查看某个应用的线程: 可以看到每个线程都有自己的status属性,那不同的status分别代表什么情况呢? running – executin ...

  3. 创建一个dynamics 365 CRM online plugin (十二) - Asynchronous Plugins

    这篇是plugin的终结. 通过之前的11期我们应该发现了plugin其实学习起来不难. async plugin 是把plugin的功能async run起来. e.g.  我们之前做过的preOp ...

  4. euclidean loss

    个人感觉相当于L2范式开平方,也相当于针对两个向量的欧氏距离开平方 说的更直白点就是两个向量对应位置相减得到每个位置的差,然后把每个位置的差开平方再相加 前向传播cpp代码: template < ...

  5. Notepad++正则表达式使用

    推荐个正则表达式在线测试的工具http://ccmpp.com/Regex/ Notepad++正则表达式使用 -- ::| 分类: 文档 | 标签:正则表达式 替换 notepad++ 匹配 查找 ...

  6. wordpress建设的企业网站

    wordpress企业站 http://ahlajd.demo.phpfangzhan.com 后台焦点图实现:

  7. Navicat for Mysql修改MySQL数据库密码,图文详解

    1.创建一个连接 2.打开连接 3.按照图示123依次点击 4.输入新密码 5.查看实现修改密码功能的SQL语句(此步骤非必须) 6.最关键的一步:点击保存 7.出现如下现象,恭喜你,修改密码成功! ...

  8. c/c++ 表白小程序

    1.开发工具: vs  vc(任选一个) 2.准备材料 : a.一首音乐 (注意:音乐要求重命名为  “x”  ) b.20张图片(注意: 图片要求重命名为  “1”  "2"   ...

  9. FBI树

    题目描述 我们可以把由"0"和"1"组成的字符串分为三类:全"0"串称为B串,全"1"串称为I串,既含"0&q ...

  10. baidu 地图 鼠标移上显示标签 鼠标离开隐藏标签

    为了解决 label太多,文字会重叠看不清 所以提出这种办法 核心代码 1,创建的时候 将label设置为隐藏 2,通过百度地图监听事件 ,  mouseover或onmouseover 触发显示 3 ...