Lua入门学习
<aside class="aside clearfix">
<a class="tag label label-info" href="/tags/lua.html">lua</a>
</aside>
<section class="brief"><p>了解到<code>Lua</code>(一种轻量级、可嵌入式的脚本语言),其实是很早之前和一些做游戏的朋友聊天的时候知道的,他们在项目中广泛地使用到这个语言。于是自己上网也看了一些lua开发中的一些特定发现,Lua 被运用的领域远不止游戏。特别最近很火的Redis和<code>OpenResty</code>(一个基于Nginx 与Lua 的高性能Web 平台)其内部集成了大量精良的Lua 库、第三方模块以及大多数的依赖项,开发人员使用Lua编写脚本就能非常轻松开发出高性能的服务了。</p>
若要了解一下lua在行业更深的应用,可以阅读云风的相关文章:点击这里
下面着重的还是Lua入门级别的学习总结
特性
Lua是一个动态弱类型
语言,支持增量式垃圾收集策略。有内建的,与操作系统无关的协作式多线程(coroutine)支持。
- 可以很方便的和用C/C++互相调用
- 很简单,不涉及任何复杂的编程概念,对数据结构的描述能力强
- 轻量级,库体积很小,只有几百K。
- 学习很容易,开发效率高
- 性能好, 支持协程,闭包等简化实现的手段
安装
lua的安装非常简单,直接参考下面的命令
Linux环境
curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz
tar zxf lua-5.3.4.tar.gz
cd lua-5.3.4
make linux test
make install
Mac环境
curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gz
tar zxf lua-5.3.4.tar.gz
cd lua-5.3.4
make macosx test
make install
安装完成后,我们在终端里面敲入lua,接口进入lua的命令交互模式
$ lua
Lua 5.3.4 Copyright © 1994-2017 Lua.org, PUC-Rio
> print("go")
go
内置类型
既然是动态类型的脚本语言,这说明同一个变量可以在不同时刻指向不同类型的数据
lua的类型主要包含 字符串、函数、布尔、数字、空(nil)、表
1、lua内置函数 type
能够返回一个值或一个变量所属的类型:
testtype.lua
#!/usr/local/bin/lua
print(type("golang"))
print(type(print))
print(type(true))
print(type(1.9))
print(type(nil))
执行输出
./testtype.lua
string
function
boolean
number
nil
2、字符串
字符串你可以用单引号,也可以用双引号,还支持C类型的转义,比如:
‘a’ (响铃),
‘b’ (退格),
‘f’ (表单),
‘n’ (换行),
‘r’ (回车),
‘t’ (横向制表),
‘v’ (纵向制表),
‘\’ (反斜杠),
‘”‘ (双引号),
‘” (单引号)
下面的四种方式定义了完全相同的字符串(其中的两个中括号可以用于定义有换行的字符串)
#!/usr/local/bin/lua
a = 'gon1.9"'
print(a)
a = "alon1.9""
print(a)
a = [[go
1.9"]]
print(a)
使用前缀运算符’#’(也称为长度运算符)可以得到字符串的长度。
#!/usr/local/bin/lua
a = "golang"
print(#a)
print(#"123