• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Lua > Lua极简入门指南(一):基础知识篇

Lua极简入门指南(一):基础知识篇

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了lua游戏开发实践指南,lua编程指南,lua编程指南pdf,lua游戏ai开发指南,lua游戏ai开发指南pdf等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文是《Programming in Lua 3rd》读书笔记。

Chunks

一个 Chunk 就是一组被执行的语句,例如一个文件或者交互模式下的一行。

标识符(identifiers)

我们应该避免使用以 _ 开头并跟上一个或者多个大写字母的字符串来作标识符,它们被保留作特殊的用途(例如:_VERSION)。

注释

单行注释使用
--
</div>
多行注释使用
--[[ 和 --]]
</div>

类型简介

Lua 存在的数据类型包括:

1.nil。此类型只有一个值 nil。用于表示“空”值。全局变量默认为 nil,删除一个已经赋值的全局变量只需要将其赋值为 nil(对比 JavaScript,赋值 null 并不能完全删除对象的属性,属性还存在,值为 null)

2.boolean。此类型有两个值 true 和 false。在 Lua 中,false 和 nil 都表示条件假,其他值都表示条件真(区别于 C/C++ 等语言的是,0 是真)

3.number。双精浮点数(IEEE 754 标准),Lua 没有整数类型

4.string。你可以保存任意的二进制数据到字符串中(包括 0)。字符串中的字符是不可以改变的(需要改变时,你只能创建一个新的字符串)。获取字符串的长度,可以使用 # 操作符(长度操作符)。例如:print(#”hello”)。字符串可以使用单引号,也可以使用双引号包裹,对于多行的字符串还可以使用 [[ 和 ]] 包裹。字符串中可以使用转义字符,例如 \n \r 等。使用 [[ 和 ]] 包裹的字符串中的转义字符不会被转义

5.userdata。用于保存任意的 C 数据。userdata 只能支持赋值操作和比较测试

6.function。函数是第一类值(first-class value),我们能够像使用其他变量一样的使用函数(函数能够保存在变量中,可以作为参数传递给函数)

7.thread。区别于我们常常说的系统级线程

8.table。被实现为关联数组(associative arrays),可以通过任何值来进行索引(nil 除外)。和全局变量一样,table 中未赋值的域为 nil,删除一个域只需要将其赋值为 nil(实际上,全局变量就是被放置在一个 table 中)

type 函数用于返回值的类型:

print(type("Hello World")) --> string
print(type(10.4*3))        --> number
print(type(print))         --> function
print(type(type(X)))       --> string
</div>

在 Lua 中,任何的变量都可以保存任何的值。

table 使用简介

使用构造表达式可以创建一个 table:
-- 创建一个空的 table
a = {}
 
-- 创建并初始化一个 table,这里
-- days[1] == "Sunday"
-- days[2] == "Monday"
-- ...
days = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }
 
-- 创建并初始化一个 table,这里
-- a["x"] == 10
-- a["y"] == 20
a = { x = 10, y = 20 }
</div>

使用 [] 操作符访问 table 的域:
a = {}
k = "x"
a[k] = 10
a["x"] = 20
print(a["y"]) --> nil
a.x = 30
</div>

注意,a.name 的语法等价于 a["name"]。

table 可以用于表示数组,这时候索引为整数,并且从 1(而非 0)开始,例如:
a = { 'a', 'b' }
a[1] == 'a'
a[2] == 'b'
</div>

长度操作符可以获取 table 数组部分的长度:

a = {}
a[1] = 1
a[2] = 2
print(#a) --> 2
 
a.a = 1
a.b = 2
print(#a) --> 2
 
a = {}
a.a = 1
a.b = 2
print(#a) --> 0
</div>

表达式

算术操作符

1.+(加)
2.-(减)
3.*(乘)
4./(除)
5.^(幂)
6.%(取模)

任何算术操作符都试图将操作数转换为数值类型,例如:

print(10 + '1') --> 11
</div>

关系操作符

1.<(小于)
2.>(大于)
3.<=(小于等于)
4.>=(大于等于)
5.==(等于)
6.~=(不等于)

两个不同类型的值是不相等的,例如:
nil ~= false
</div>

table、userdata 类型是通过引用进行比较的,例如:

a = {}; a.x = 1; a.y = 0
b = {}; b.x = 1; b.y = 0
c = a
</div>

这里 a 和 c 引用一个相同的对象,因此 a == c,但是 a ~= b(即便 a、b 内容相同)。

逻辑操作符

1.and
2.or
3.not

逻辑操作符有返回值。对于 and 操作来说,如果第一个操作数为 false 时返回此操作数,否则返回第二个操作数。对于 or 操作来说,如果第一个操作数不为 false 时返回此操作数,否则返回第二个操作数。

连接操作符

字符串连接可以使用连接操作符 “..”,例如:
print("Hello " .. "World")
</div>
连接操作符试图将操作数转化为字符串,例如:
print("number: " .. 1)
</div>

语句

多赋值(multiple assignment)支持,例如:
a, b = 1, 2
print(a) --> 1
print(b) --> 2
</div>
多赋值的一个惯用法就是交换两个变量的值:
x, y = 1

您可能想查找下面的文章:

  • Lua 极简入门指南(七):面向对象编程
  • Lua极简入门指南(六):模块
  • Lua极简入门指南(一):函数篇
  • Lua极简入门指南(一):基础知识篇

相关文章

  • 详解Lua中的while循环语句的使用
  • Lua中获取table长度问题探讨
  • Lua中变相实现continue跳出循环
  • Lua中的__index和__newindex实例
  • Lua之字符串格式化例子和常用格式化参数介绍
  • Lua中os库详细介绍
  • Lua中的面向对象编程详解
  • Lua中写排序算法实例(选择排序算法)
  • Lua中释放table占用内存的方法
  • Lua字符串库(string库)学习笔记

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Lua中变相实现continue跳出循环
    • Lua中实现StringBuffer功能
    • Lua教程(十二):面向对象编程
    • 详解Lua中的元表概念
    • lua中赋值类型代码详解
    • Lua中计算、执行字符串中Lua代码的方法
    • Lua中简单的错误处理实例
    • Lua教程(十五):输入输出库(I/O库)
    • Lua数据类型介绍
    • Lua中ipair和pair的区别

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有