【quick-cocos2d-x】Lua 语言基础

使用quick-x开发游戏有两年时间了,quick-x是cocos2d-Lua的一个豪华升级版的框架,使用Lua编程。相比于C++,lua的开发确实快速便捷了许多,下文只是lua这门语言的一个基础知识点,没有涵盖整个Lua的内容,但是作为对lua入门的初步了解还是可以的,由于内容精简了不少,所以语言上可能会有点跳跃,但是问题不大。

  要了解一门语言,首先要了解的是语言的标识符、保留字、常量和变量,命名规范和注释以及数据类型等。然后是运算符、控制流语句和一些常用的函数方法之类的东西。最后再涉及面向对象的内容等等。

一、标识符(命名规范)

  按照上面的顺序,我们首先来看下Lua的标识符和保留字的内容吧。标识符就是语言给变量、常量、方法(函数)、对象和类等指定的名字。每一门语言都有自己的一套命名规范,虽然有些语言的命名规范略有差异,但是基本上是一致的,这也算是行业的一些潜规则吧。

  Lua的标识符有以下几点要求:

  1、严格区分大小写,即person和Person是不同的标识符。

  2、在字符组成上,Lua同样满足可以由下划线、字母和数字组成,并且首字符不能是数字的要求。除此之外,Lua标识符还支持美元符号组成,即“$num_111”这样的标识符是合法的。

  3、不能使用关键字(保留字)作为标识符。

  所谓的关键字(保留字)是在语言中具有特殊意义的符号,每一门语言都会定义一些具有某些特殊含义的保留字,下面我们罗列下Lua的主要关键字:

  1、语言基础:nil、local、function、type。

  2、逻辑判断:and、or、not、true、false。

  3、流程控制:return、break。

  4、分之语句:if、then、else、elsif、end。

  5、循环语句:do、while、for、in、repeat、until。

  在C、C#、Java等语言中,常量只能在声明的时候初始化,之后就不能更改它的值。然而对Lua这种动态脚本语言而言,它并没有常量与变量之分,两个其实是一样的,都是变量,都可以在初始化后随意修改它的值。我们在声明常量的时候通常使用全大写字符组成,不同单词之间以下划线分隔。如:

Y_NAME = “clarence” 

  Lua中声明一个变量是在标识符前面加上local关键字来声明一个局部变量,不加local关键字的就是全局变量了。变量的命名方式是首字符小写,采用驼峰命名法。如:
  

local myName = “clarence”
name = “zengbinsi”

  每个语言都有每个语言的命名规范,虽然不是强制要求的东西,但是一个好的命名风格会让你的代码更加美观和易于维护。Lua基本上和其他语言一致,除了上面提到的常量与变量的命名规范之外,在类名上,Lua一般采用首字符大写的驼峰命名法,而对象的命名法和变量的一致。另外,方法函数一般采用动词开头,首字母小写,后面每个单词首字母大写的驼峰命名法进行命名。
  

二、代码注释

  在Lua中,代码注释主要分两种:单行注释(- - 注释内容)和多行注释(- - [[ 可换行注释内容 ]] - -)。如:
  

     - -  单行注释
     local num = 621  - - 声明一个变量num,并赋值。
     - - [[ 

         这里是多行注释

         print(“Hello World!”)
     ]] - -

三、数据类型

  Lua和Javascript一样同属于动态语言,所以它的类型是在赋值的时候才确定下来的,并且后期重新赋值的时候会再次确定新的类型。Lua主要的数据类型有:数值类型(number)、布尔类型(boolean)、字符串类型(string)、函数类型(function)、线程(thread)、表类型(table)、自定义类型(userdata)和空值(nil)。

  数值类型可以保存实数,包括整数和小数,整数包括十进制和十六进制,十六进制的整数是以“0x”开头的一串数字序列。

  布尔类型的值只有两种:true和false,用于表示“真”和“假”。

  字符串类型是由0个或者多个被双引号(“”)或者(’’)包裹的字符序列。

  函数类型,Lua里面的函数类型也是第一类值,所谓的第一类值的意思就是函数和我们普遍认识的字符串、数字之类的类型是一样的,可以保存在一个变量里面,可以重新赋值,也可以当成函数的实参传递到其他函数内部等等。

  线程类型可以同时执行多个(多线程),每个线程会开辟独立的栈区、局部变量等。

  表类型类似于其它语言的数组或者字典类型,但是它比数组或者字典类型更加强大,它是使用大括号({})表示的,创建表类型的代码如下:
  

     - -  数组形式
     local nums = {2, 1, 5, 6, 1, 1,}
     - -  字典

你可能感兴趣的:(Cocos2D,lua,语言,cocos2d,游戏开发,zengbinsi)