在lua中,一切都是变量,除了关键字。

1、注释:

单行注释: 连续两个减号“--”表示注释的开始,一直延续到行末。相当于C语言中的“//”

多行注释:由“--[[”表示注释开始, “]]”表示注释结束。类似于C语言中的“/*..........*/”

2、编程

在lua中,语句之间可以用分号“;”, 也可以用空白隔开。 如果多个语句在同一行中时,建议使用分号隔开。

lua有好几种程序控制语句:

条件控制:

if 条件

then … elseif 条件

then … else … end

while循环

while 条件

do ....   end

repeat循环

repeat .... until 条件

For循环:

for 变量 = 初值,终点值,步进 do … end 
For循环:

for 变量1,变量2,… ,变量N in表或枚举函数 do … end

注意一下,for的循环变量总是只作用于for的局部变量,你也可以省略步进值,这时候,for循环会使用1作为步进值。

语句块:

使用 do和end进行。相当于C语言中的"{ }".

赋值语句:

在lua中被强化了,可以同时给多个变量赋值。

a,b,c,d=1,2,3,4

默认情况下,变量总是全局的。要使用局部变量,在第一次赋值的时候,需要用"local"说明。

local a,b,c=1,2,3  全是局部变量

数值运算:

支持+、—、*、/运算,还支持"^",表示指数乘方运算,例如2^3=8

连接两个字符串,可以使用“..”运算符。

关键字:

and break do else elseif end false for function if in local nil not or

repeat return then true until while

变量类型:

怎样确定一个变量类型呢?可以使用type()函数来检查。

lua支持的类型有以下几个:

Nil:空值,所有没有使用过的变量都是Nil。Nil既是值,又是类型。

Boolean:布尔值。

Number: 数值,在lua里,数值相当于C语言的double

String:字符串,字符串可以包含'\0'字符的。

Table:关系表类型

Function:函数类型。

Userdata:这个类型专门用来和lua的宿主打交道。宿主通常是用C和C++来编写的。在这种情况下,Userdata可以是宿主的任意数据类型。常用的有struct和指针。

Thread:线程类型,在lua中么有真正的线程。lua中可以将一个函数分成几部分运行。

逻辑运算符

逻辑运算符认为false和nil是假(false),其他为真,0也是true

and和or的运算结果不是true和false,而是和它的两个操作数相关

a and b       -- 如果a为false,则返回a,否则返回b

a or  b        -- 如果a为true,则返回a,否则返回b

Metatables and Metamethods

元表与元方法,这是一个很重要的概念。可以为table设置或指定metatable,用于指定某些运算符对应的操作方法。

* setmetatable(table, meta_table)      设置元表
* getmetatable(table)                       获取元表

这个元素,可以是个函数。

tb = {
----> <metatable> = {
__add = function : xxx 加法操作
__sub = function : xxx 减法操作
__mul = function : xxx 乘法操作
...
} [1] = 20
[2] = 40
...
} unpack
unpack它接受一个数组(table)作为参数,并默认从下标1开始返回数组的所有元素 赋值语句
当变量个数和值的个数不一致时,Lua会一直以变量个数为基础做一下策略
变量个数 > 值的个数  按变量个数补足nil
变量个数 < 值的个数  多余的值会被忽略

lua学习的更多相关文章

  1. [转]LUA 学习笔记

    Lua 学习笔记 入门级 一.环境配置 方式一: 1.资源下载http://www.lua.org/download.html 2.用src中的源码创建了一个工程,注释调luac.c中main函数,生 ...

  2. Lua学习笔记(二):基本语法

    Lua学习指南:http://www.lua.org/manual/ 首先我们要明确的一点是:在Lua中,除了关键字外一切都是变量. Lua关键字 可以查看这个地址:http://www.lua.or ...

  3. Lua 学习笔记(一)

    Lua学习笔记 1.lua的优势 a.可扩张性     b.简单     c.高效率     d.和平台无关 2.注释 a.单行注释 --        b.多行注释 --[[  --]] 3.类型和 ...

  4. lua学习:使用Lua处理游戏数据

    在之前lua学习:lua作配置文件里,我们学会了用lua作配置文件. 其实lua在游戏开发中可以作为一个强大的保存.载入游戏数据的工具. 1.载入游戏数据 比如说,现在我有一份表单: data.xls ...

  5. Lua学习笔记6:C++和Lua的相互调用

        曾经一直用C++写代码.话说近期刚换工作.项目组中的是cocos2dx-lua,各种被虐的非常慘啊有木有.     新建cocos2dx-lua项目.打开class能够发现,事实上就是C++项 ...

  6. Lua学习笔记4. coroutine协同程序和文件I/O、错误处理

    Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...

  7. nginx+lua学习

    1. nginx+lua学习 1.1. 网关架构 1.2. nginx命令和信号控制 nginx -s stop 快速关闭,不管有没有正在处理的请求 nginx -s quit 优雅关闭方式,推出前完 ...

  8. (转)Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境

    Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境(一)注意:工程必须添加两个宏:“配置属性”/“C或C++”/“预处理器”/“预处理器定义”,添加两个宏:_CRT_SECURE_ ...

  9. Lua学习笔记:面向对象

    Lua学习笔记:面向对象 https://blog.csdn.net/liutianshx2012/article/details/41921077 Lua 中只存在表(Table)这么唯一一种数据结 ...

  10. lua学习之类型与值篇

    类型与值 lua 是动态类型的语言 在语言中没有类型定义的语法 每个值都携带有它的类型信息 8种基础类型 用 type 可以返回这个值的类型的名称 将一个变量用于不同类型,通常会导致混乱的代码 但合理 ...

随机推荐

  1. ubuntu jdk环境变量配置

    export JAVA_HOME=/usr/local/java/jdk1.8.0_25  export JRE_HOME=${JAVA_HOME}/jre  export CLASSPATH=.:$ ...

  2. [笔记]The Linux command line

    Notes on The Linux Command Line (by W. E. Shotts Jr.) edited by Gopher 感觉博客园是不是搞了什么CSS在里头--在博客园显示效果挺 ...

  3. 基于jdk调用天气服务案例及问题

    问题1:解析wsdl文件时出现 把网络上的wsdl保存到本地,把圈起来的那段删掉 代码: 当返回结果不是String类型时: 输入城市编码去查找 所以: 问题二:如果把本地wsdl文件删除的话需要 三 ...

  4. C语言函数参数的传递详解

    一.三道考题 开讲之前,我先请你做三道题目.(嘿嘿,得先把你的头脑搞昏才行--唉呀,谁扔我鸡蛋?)考题一,程序代码如下:void Exchg1(int x, int y){   int tmp;    ...

  5. 【转】HTML-based script和URL-based script两种脚本录制方式

    在Web(HTTP/HTML)录制中,有2种重要的录制模式.用户该选择那种录制模式呢?HTML-mode录制是缺省也是推荐的录制模式.它录制当前网页中的HTML动作.在录制会话过程中不会录制所有的资源 ...

  6. iwinfo 的使用

    以前使用iwconfig来配置和获取wireless的信息,目前openwrt已经废弃这种方式,采用 iwinfo 和 iw 命令来进行替代. iwinfo的使用方法如下: root@hbg:/# i ...

  7. 修改weblogic中StuckThreadMaxTime参数

    your_domain->Environment ->Servers ->your_server->Configuration->Tuning->Stuck Thr ...

  8. FZU 2086 餐厅点餐

     好久不写博客了……得有快一个月了……看到大神们一篇篇博文 唉……差好多……这一个月 有蓝桥杯还有校赛……校赛签到题都没签完 实力铁牌……不过蓝桥杯一等奖 五月份帝都之行还挺令人期待……清明小长假之前 ...

  9. VS2010编译以前版本工程时 ERROR CVT1100:duplicate resource,type:MANIFEST解决办法

    1.将 Resource Files 里面的 *.exe.manifest 文件删除 2.右键选择 *.rc 文件,选择 view code,查找并删除所有引用 *.exe.manifest 文件的代 ...

  10. 【code vs】 2780 ZZWYYQWZHZ

    2780 ZZWYYQWZHZ 题目描述 Description 可爱的小管在玩吹泡泡.忽然,他想到了一种排序....... 输入描述 Input Description 第一行输入n,表示有n个数. ...