写点什么

Lua 入门到精通( 02 Lua 基本语法)《做一个脚本高手》

发布于: 2 小时前
Lua 入门到精通( 02 Lua 基本语法)《做一个脚本高手》

传送门


近期会讲解 Lua 语言编程系列,从最基础入门,到精通,实战,保姆级教程。本文是 Lua 第二篇,下面是传送门,会持续输出 ...



5 基本语法


Lua 提供了交互式编程模式,即我们可以直接在命令行中输入程序并立即查看效果。使用 lua -i 命令可以打开交互窗口。


以下演示打开交互窗口,并使用打印语句输出内容。


[root@chenpi opt]# lua -iLua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio> print("Hello 陈皮的JavaLib !")Hello 陈皮的JavaLib !> 
复制代码


也可以将 Lua 程序代码保存到一个以 lua 结尾的文件中,并执行,即脚本式编程。


-- 以下内容存储在chenpi.lua文件中print("Hello 陈皮的JavaLib !")print("Hello Lua!")
复制代码


然后使用 lua 命令执行以上文件。


[root@chenpi opt]# lua chenpi.lua Hello 陈皮的JavaLib !Hello Lua![root@chenpi opt]# 
复制代码


当然也可以将 Lua 脚本作为一个可执行文件来执行,第一行说明用什么解释器来执行,Lua 脚本内容如下:


#!/usr/local/bin/luaprint("Hello 陈皮的JavaLib")
复制代码


然后赋予文件可执行权限,然后执行。


[root@chenpi opt]# chmod +x chenpi.lua [root@chenpi opt]# ./chenpi.lua Hello 陈皮的JavaLib[root@chenpi opt]# 
复制代码

5.1 注释

Lua 中有两种注释,单行注释和多行注释。


-- 两个减号是单行注释

--[[这是多行注释这是多行注释...--]]
复制代码

5.2 标识符

Lua 标识符由大小写字母下划线数字组成,并且只能以字母和下划线开始,区分大小写。标识符就是我们平常定义的变量名或者函数名。Lua 中的关键字不能用作变量名或函数名。


-- 以下都是合法的标识符chenpiChenPichenpi23a_lua
-- 以下都不是合法的标识符1_chenpichenpi%aabreak
复制代码

5.3 变量

Lua 中的变量可分为全局变量局部变量,使用 local 关键字定义的变量为局部变量,反之则为全局变量。


新建一个 Lua 脚本文件 chenpi.lua ,然后输入以下内容。


name = "chenpi" -- 全局变量
function func() age = 12 -- 全局变量 local i = "ok" -- 局部变量 print(i)end
func()print(name)print(age)print(i)
复制代码


使用 lua chenpi.lua 命令进行编译运行,输出结果如下:


okchenpi12nil
复制代码


以上例子 name 和 age 是全局变量,i 是局部变量,所以在函数外面打印 i 的值为 nil 。其实 age 这个全局变量是在函数内定义的,所以在函数外部对 age 的引用要后于对函数的调用才可以,不然也是输出 nil 。


name = "chenpi" -- 全局变量
function func() age = 12 -- 全局变量 local i = "ok" -- 局部变量 print(i)end
print(name)print(age)print(i)func()
-- 输出如下-- chenpi-- nil-- nil-- ok
复制代码


对于变量要先定义,后使用,不然直接引用一个还未定义的变量,它的值为 nil 。


print(name) -- nil
name = "chenpi"
print(name) -- chenpi
print(age) -- nil
复制代码


定义好的变量可以重新定义。


name = "chenpi"print(name)  -- chenpi
local name = "local chenpi"print(name) -- local chenpi
name = 12.0print(name) --12
复制代码


可以同时定义相名的全局变量和局部变量。


function func()  name = "chenpi"  local name = "local chenpi"  print(name)end
func() -- local chenpiprint(name) -- chenpi
复制代码

5.4 关键字

| if    | elseif | else     | do    | end    || ----- | ------ | -------- | ----- | ------ || break | and    | or       | not   | in     || true  | false  | function | local | repeat || while | then   | return   | for   | until  || nil   |        |          |       |        |
复制代码


我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的 JavaLib」第一时间阅读最新文章喔!


本次分享到此结束啦~~


如果觉得文章对你有帮助,点赞、收藏、关注、评论,您的支持就是我创作最大的动力!

发布于: 2 小时前阅读数: 2
用户头像

CSDN博客专家,微信搜一搜 - 陈皮的JavaLib 2020.02.22 加入

CSDN博客专家,专注各项技术领域的Java开发工程师,微信搜一搜【陈皮的JavaLib】,关注后学习更多技术文章和一线大厂面试资料和技术电子书籍。

评论 (1 条评论)

发布
用户头像
文章链接:https://xie.infoq.cn/article/04d0d8c508c6b1031ba11ea9a。近期会讲解 Lua 语言编程系列,从最基础入门,到精通,实战,保姆级教程。本文是 Lua 第一篇,会每天日更持续输出 ...
2 小时前
回复
没有更多了
Lua 入门到精通( 02 Lua 基本语法)《做一个脚本高手》