首页 > 代码库 > CC3.2+Lua(2) ——Lua基础语法1

CC3.2+Lua(2) ——Lua基础语法1

【唠叨】

    首先,我已经默认你已经学过至少一门宿主语言了(C++、Java等),然后转向学习Lua。

    因为51cto中对于Lua语言没有代码高亮,为了让代码看起来丰富多彩,我只好用截图了。i_f32.gif


    本节内容仅介绍Lua的简单基础语法,更多用法请百度:Lua中文教程 、 Lua参考手册 。


【学习感慨】

    > 语句末尾不需要加分号 ; 

    > 语句块不是用花括号 { } , 而是 do 语句块 end 表示语句块的开始和结束。

        而 花括号 {} 表示的为一个 表结构 。

    > 运算符 ^  :表示幂运算。(即 2^10 = 1024)

    > 不等于号为: ~=

    > 变量的定义不需要加数据类型。直接 a = 10。

    > 且(and)、或(or)的运算返回值不是true/false而是运算符左边或右边的变量值

    > 除了 nilfalse ,其余的均为真。( 0 和 空串"" 也为真)。

    > 变量的赋值可以多个一起赋值。( a,b,c = 10,20,30 )。

    > 函数可以返回多个值。( return a,b,c

    > Lua中数据结构类型只有唯一的一个:表(table)

        它既可以表示一个数组,也可以是一个数据结构,或者是一个类。

    > 数组下标从 1 开始,而不是 0 。




0、Lua环境配置

    可以去lua官网 www.lua.org  下载资源文件,然后在文本编辑器来编写。

    也可以使用 eclipse ,下载 ldt 插件,就可以在 eclipse 中编写Lua的代码了。


0、Lua的一个例子

    先来看看Lua的一个例子,图个新鲜。i_f07.gif

    注:下面的代码是可以直接运行的。对,不需要main函数!

wKiom1RE46ywaKPZAAKGP3sK2ew218.jpg


1、数据类型

    > 在Lua中,定义一个变量的时候,不需要写数据类型

    > Lua中就直接这样定义:a = 10; b = "Hello World" 。

    wKioL1REiKywadAjAAJZDtvFBIo814.jpg


2、注释

    (1)单行注释: --

    (2)多行注释: --[[    --]]

    wKioL1REq5ODiclgAABMd1oJpmY804.jpg


3、输出语句

    wKioL1RErZqSoegcAAFyH41AcdA898.jpg


4、保留关键字

    wKiom1REriSCpRN9AADAUcjLjjo203.jpg


5、运算符


 5.1、算术运算符

    > 其中 ^幂运算

    wKiom1REtADSqm0IAABnGBQARuI593.jpg


 5.2、关系运算符

    > 其中 ~=不等于

    wKioL1REtFyw-BHpAACoyv31I_I769.jpg


 5.3、逻辑运算符

    > Lua里的逻辑运算符不是返回 true/false ,而是 a 或者 b。

    > 其中,三目运算符可以表示成如下所示。

    wKioL1REtGvCl6jDAADZm7_VAfA454.jpg


 5.4、拼接运算符

    > 两个点 .. 为字符串的拼接运算。

    wKioL1REtSKQCJQRAAA9vX1Ynjw599.jpg


 5.5、优先级

    > 其中 ^ 和 .. 为右链接,其余为从左到右依次运算。

    > 优先级如下:wKiom1REtRuTI3ChAACXlKBRKOM887.jpg


6、变量赋值、以及作用域


    (1)局部变量(local)、全局变量。

    wKiom1REtbeQjnsCAACt9jyCERk129.jpg


    (2)多重赋值

        > 赋值等号左边为变量,右边为所赋的值。会按顺序依次赋值。

    wKiom1REvYbxFfm7AAGFXpOZZok917.jpg


7、代码块

    > 使用 do end

    wKiom1REti2jdARJAACmTkAAEks689.jpg


8、控制语句

    

    这里可能涉及到表(table)的知识,这个在后续会介绍。


 8.1、条件语句 if-else-then

    > elseif 中间没有空格。

    > 不要忘了后面的 then

    wKioL1REt5vjSr9sAACm6F6bj3U023.jpg


 8.2、循环语句 while-do

    > 和C++中的用法类似。

    wKioL1REuFfwgS39AAB5EUP3OYg234.jpg


 8.3、循环语句 repeat-until

    > 和C++中的 do-while 用法类似。

    wKiom1REuRjyIg1GAABwKH4LbPY025.jpg


 8.4、循环语句 for-do

    使用for循环语句是Lua中最常用的。


    (1)用法一:数值遍历

    wKioL1REu26j_03tAAEdP9z276s735.jpg


    (2)用法二:数组遍历

    wKioL1REu32DwPOlAADi1wo40Uc298.jpg


    (3)用法三:数组遍历(ipairs)

        > 使用 for key, var in ipairs(t) do    end

    wKioL1REvwLDLNYPAAFS6xs62PQ762.jpg


    (4)用法四:表遍历(pairs)

        > 遍历整张表,输出表中所有数据。

        > 使用 for key, var in pairs(t) do    end

    wKioL1REv7-CYI5kAAC9jO5UOsI389.jpg


    (5)ipairs 与 pairs 的区别

        > ipairs :主要用于表数组的遍历,即表的下标均为正整数,且从1~n连续。

        > pairs  :用于遍历整张表。


9、函数 function

    函数的定义如下:

        function 函数名(参数列表) 语句块 end

    wKioL1REwaaSSiI2AABlx762WZ4675.jpg


 9.1、可变参数

    在函数的参数列表最后面使用三个点 ... ,表示输入参数可变。

    而可变的参数会保存在一个表数组 arg 中。

    wKiom1REwnbw-gF3AAE6OCcm7bQ161.jpg


 9.2、多返回值

    函数可以返回多个值。

    举例说明:

    wKioL1REw3nQbqqKAAHRKAlL0iQ038.jpg


10、表(table)

    Lua中的数据结构只有一个:表(table)。

    原理:键值对 key - value


 10.1、表示一个数组

    前提条件为:数组的下标均为正整数,且连续赋值。

    并且在Lua中,数组的下标从 1 开始。( t[1] , t[2] , t[3] ...)

    举例:

    wKioL1REyTPB33zfAAI60I_FeIQ096.jpg


 10.2、表的用法

    (1)初始化赋值

    wKiom1REzaWAsYJRAAHRvCnW2tI494.jpg


    (2)表成员的使用方法

    wKioL1REztzR8hPSAACloajYwVE540.jpg




    基础语法讲完了,请待下回分解。。。


本文出自 “夏天的风” 博客,请务必保留此出处http://shahdza.blog.51cto.com/2410787/1565974

CC3.2+Lua(2) ——Lua基础语法1