第一个Lua程序

Posted DaemonCoder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一个Lua程序相关的知识,希望对你有一定的参考价值。


首先祝大家 猿宵节 快乐~

安装Lua

以macosx为例:

wget http://www.lua.org/ftp/lua-5.3.5.tar.gz 
tar zxf lua-5.3.5.tar.gz
cd lua-5.3.5

根据需要修改Makefile文件中的变量 INSTALL_TOP,值改成想要安装到的目录,默认是安装到/usr/local下

make macosx 
make install

进入安装目录就可以看到 bin、include、lib、share等目录,大功告成。可以把bin目录加入系统$PATH,以便可以直接运行lua命令。

运行Lua程序

和python等其他语言类似,可以运行lua命令,进入lua解释器,逐行输入代码,逐行执行。如:

lua 
Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
> print 'Hello, Lua World - www.daemoncoder.com'
Hello, Lua World - www.daemoncoder.com

也可以把代码保存到文件中:

cat > hello.lua 
print("Hello, Lua World - www.daemoncoder.com")

然后用lua命令执行文件:

lua hello.lua 
Hello, Lua World - www.daemoncoder.com

第一个Hello World的Lua程序就这样学会了,是不是很简单,最后让我们看一个统计词数的demo先来感受一个Lua代码,和其他语言大同小异,看不懂也没有关系,我们后续会有详细的Lua教程。

local counter = {}

for line in io.lines() do
   for word in string.gmatch(line, "%w+") do
       counter[word] = (counter[word] or 0) + 1
   end
end

local words = {}

for w in pairs(counter) do
   words[#words + 1] = w
end

table.sort(words, function (w1, w2)
   return counter[w1] > counter[w2] or
           counter[w1] == counter[w2] and w1 < w2
end)

-- 要输出的字数

local n = math.min(tonumber(arg[1] or math.huge, #words))

for i = 1, n do
   io.write(words[i], "\t", counter[words[i]], "\n")
end

后续会有更多详细的Lua学习文章,请关注www.daemoncoder.com的持续更新。


以上是关于第一个Lua程序的主要内容,如果未能解决你的问题,请参考以下文章

第一个Lua程序

在Pandoc lua过滤器中连接字符串片段

片段不起作用并且有错误

chapter8_4 错误处理

Lua 基本语法

GPRS(Air202) Lua开发: 下载和运行第一个程序