lua语言初探
写在最前面
《cocos2d-x lua核心编程》是我首次购买电子书,坑的就不谈了,书里的代码部分基本上不是少空格就是多换行,让阅读变得十分困难。
所以又购买了实体书,加上看一些大佬视频和博客,这才慢慢步入正轨,当然我的lua水平不高,仅作为游戏开发的工具,写这一系列的博客,希望能够让又同样想法的朋友少走弯路。
简介安装什么就不说了。
Lua的代码规范
- Lua的多条语句之间并不要求任何分隔符,如C语言的 ";",换行符也同样不能起到语句的分割作用。
a =1
b= 2*a
a=1 b=2*a
- 通过dofile()方法引用其他Lua文件中的函数.
dofile(D:/test.py)
-变量命名规范:
由数字字母下划线构成,但是不能数字和下划线开头
- lua的注释
单行注释:
-- 这是注释
多行注释:
--[
这是注释
]--
lua的基本数据类型
lua是一种动态类型的语言,其语言本身没有提供类型定义的语法,每个值都携带了它自身的类型信息。在lua中有8中基础类型,分别为
nil,boolean,number,string,userdata,function,thread和table。变量的类型信息可以通过type函数获得。
nil:
nil就是空,它只有一个值nil,它的主要功能是由于区别其他任何值。一个全局变量在第一次赋值前的默认值就是nil。
boolean:
布尔类型,包括两个值,true和false,在lua中只有当值是false和nil时才为假,其他时候都为真。
number:
数字,用于表示实数。
string:
lua中的字符串代表的是一个字符序列,修改字符串得到的是新的字符串。
table:
lua中table类型视为关联数组,就像c++中的map,差别是lua中的table的键是可以为除nil外的任何类型,没有长度限制,可任意添加。
function:
在lua中,函数可以存储在变量中,可以通过参数传递其他函数,还可以作为函数的返回值。
userdata:
lua的自定义类型。
表达式
1,算术操作符
lua的算术操作符为常规的,有+,-,*,/,%()取模等。
2,关系操作符
>=,<=,==,~=
3,table构造器
构造器用于构建和初始化table,构建空构造器。
days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}
for i = ,#days do
print(days[i])
end
--输出结果为
--Sunday
--Monday
--Tuesday
--Wednesday
--Thursday
--Friday
--Saturday
语句
1,赋值语句
lua中赋值语句和python基本相同,支持解构赋值。
2,局部变量与块
局部变量通过local i = n 进行定义。
while i <= x do
local x = i *
print(x)
i = i +
end
3,控制语句
- if ...then...else
if a < then
b =
else
b =
end
- if ...elseif...then...else
if a < then
b =
elseif a == then
b =
else
b =
end
- while ..do..
local i=
while a[i] do
print(a[i])
i = i +
end
- repeat...until,相当于 do while
- for,在lua中,分为泛型for循环和数字型for循环,数字型for循环相当与python中的 for i in range (1,3,1),泛型for循环就是遍历数组或者table等。
for var = begin, end, step do --如果没有step变量,begin的缺省步长为1。
i = i +
end
函数
1,lua中的函数接收不同长度的参数,在函数定义的()协商。。。
2,在lua中,函数和其他所有值一样都是匿名,即它们都没有名称。在使用时都是操作该函数的变量 ,操作时都是操作持有该函数的变量。
function foo(x)
for i in var=, do
i=i+
end
end
lua语言初探的更多相关文章
- Squirrel语言初探(可以使用VC6或者MinGW编译)
Squirrel语言初探 为啥我要关注Squirrel语言?原来Squirrel就很像我希望设计出的理想中的语言(当然也不完全符合).比如我觉得Lua的语法表述不清晰,累赘,于是想用C系语法来代替Lu ...
- 用VC编译lua源码,生成lua语言的解释器和编译器
用VC编译lua源码,生成lua语言的解释器和编译器 1.去网址下载源码 http://www.lua.org/download.html 2.装一个VC++,我用的是VC6.0 3.接下来我们开始编 ...
- 51CTO专访淘宝清无:漫谈Nginx服务器与Lua语言
http://os.51cto.com/art/201112/307610.htm 说到Web服务器,也许你第一时间会想到Apache,也许你会想到Nginx.虽然说Apache依然是Web服务器的老 ...
- 【quick-cocos2d-x】Lua 语言基础
版权声明:本文为博主原创文章,转载请注明出处. 使用quick-x开发游戏有两年时间了,quick-x是cocos2d-Lua的一个豪华升级版的框架,使用Lua编程.相比于C++,lua的开发确实快速 ...
- lua语言入门之Sublime Text设置lua的Build System
转自: http://blog.csdn.net/wangbin_jxust/article/details/8911956 最近开始学习LUA语言,使用Sublime Text作为编辑器,不得不说, ...
- 编译并使用Lua语言
Lua是一个小巧的脚本语言,该语言设计的目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. 可扩展性.Lua的扩展性非常卓越,可以通过Lua代码或C代码扩展,很多功能可以通过外部库来扩 ...
- Lua语言在Wireshark中使用(转)
1. 检查Wireshark的版本是否支持Lua 打开Wireshark,点击“HelpàAbout Wireshark”菜单,查看弹出的对话框,如果有“with Lua 5.1”表示支持 ...
- Unity进阶----Lua语言知识点(2018/11/08)
国内开发: 敏捷开发: 集中精力加班堆出来第一个版本 基本没啥大的bug 国外开发: 1).需求分析: 2).讨论 3).分模块 4).框架 5).画UML图(类图class function)(e- ...
- lua语言自学知识点----Lua与.Net相互调用
知识点: LuaInterface作用是用来完成Lua与C#的相互调用. LuaInterface核心库:1.luainterface.dll 用于C#读取lua(放在bin目录同级) 2.luane ...
随机推荐
- Prometheus Alert Rules with Some Metrics
Using Prometheus as a monitor system, it is quite efficent. The most important one is that alert tem ...
- web项目中对post请求乱码处理
<filter> <filter-name>characterEncoding</filter-name> <filter-class>org.spri ...
- Runtime "Apache Tomcat v6.0 (3)" is invalid. The JRE could not be found. Edit the server and change the JRE location解决方案
使用eclipse,启动Tomcat时出现The JRE could not be found ,Edit server and change teh JRE location的错误提示! 原因:重装 ...
- git忽视修改的文件
对于tracked文件来说,使用.gitignore是不行的.但是git提供了新的方法. 使用命令 git update-index --assume-unchanged <files>, ...
- PowerShell实现简单的搜索地区功能
Add-Type -AssemblyName Microsoft.VisualBasic $VBI = [Microsoft.VisualBasic.Interaction] function Sea ...
- [转] An Introduction to Mutual SSL Authentication
1. Introduction Mutual SSL authentication or certificate based mutual authentication refers to two p ...
- Python selenium webdriver设置加载页面超时
1. pageLoadTimeout: pageLoadTimeout方法用来设置页面完全加载的超时时间,完全加载即页面全部渲染,异步同步脚本都执行完成.没有设置超时时间默认是等待页面全部加载完成才 ...
- 腾讯优秀 SDK 汇总
1. 热修复 -- Tinker 项目地址:http://www.tinkerpatch.com/ SDK地址:https://github.com/Tencent/tinker 集成参考文档: ht ...
- Android JNI 学习(八):Calling Instance Methods Api
一.GetMethodID jmethodIDGetMethodID(JNIEnv *env, jclass clazz, const char *name, const char *sig); 返回 ...
- 【Spark调优】Broadcast广播变量
[业务场景] 在Spark的统计开发过程中,肯定会遇到类似小维表join大业务表的场景,或者需要在算子函数中使用外部变量的场景(尤其是大变量,比如100M以上的大集合),那么此时应该使用Spark的广 ...