ios中lua脚本的应用

ios中lua脚本的应用

ID:5354034

大小:820.50 KB

页数:42页

时间:2017-12-08

ios中lua脚本的应用_第1页
ios中lua脚本的应用_第2页
ios中lua脚本的应用_第3页
ios中lua脚本的应用_第4页
ios中lua脚本的应用_第5页
资源描述:

《ios中lua脚本的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、iOS中Lua脚本的应用Proteas2012-07-23proteas.wang@gmail.com概要•为什么要在应用中引入脚本?•为什么是Lua?•使用Lua开发应用的几种模式•HelloLua•Meta-*:Lua与Objective-C集成的原理•wax框架及其本身的一些问题•Demos•其它•目前没有解决的问题为什么要在应用中引入脚本?•目前在进行开发应用时遇到的一些问题–UI变化–业务逻辑变化–数据源不灵活•如何处理UI变化?•如何处理业务逻辑变化?•如何解决数据源不灵活的问题?•ObjC语言的问题(编译执行

2、)*Warning:使用PList作为配置文件时要谨慎为什么是Lua?•设计目标:嵌入到应用程序中(嵌入式)•体积小:100~200K•最快的脚本语言(非JIT)•简洁的API•动态语言•DomainSpecificLanguage*编程语言的哲学:–编程语言是否都差不多?–Assembly,C,C++,Java/C#,Python,Ruby,CommonLisp–代码与数据的统一使用Lua开发应用的几种模式•Lua作为配置文件•宿主语言作为底层,为宿主语言应用库,Lua作为逻辑描提供参数述Lua宿主语言宿主语言LuaCo

3、ronaSDK*LuaVS.PlistorXMLHelloLua:什么是Lua•Lua是一种脚本编程语言,于1994年,由巴西里约热内卢天主教大学的研究人员设计开发,“Lua”这个名字是葡萄牙语单词“月亮”。•与一般脚本语言如PHP、Perl、JavaScript等不同,Lua被称为是一种嵌入式脚本语言,Lua最著名的应用是在暴雪公司的网络游戏魔兽世界中。–《WorldofWarcraftProgramming》•Lua最引人注目的特点:–以极小的体积和简单的语法提供相对全面的功能。–以简洁的API实现与宿主语言最方便的接

4、口。•在服务器端也有着广泛的应用HelloLua:为什么称为“嵌入式”•Lua语言可以独立进行编程,但这不是其主要的使用方式。Lua虽然有动态、灵活的语法提供强大的功能,但并不像Java、Python等一样有一个完善的库(但仍存在一定数量的第三方库),这不是缺陷,而是和其定位有关。•Lua最典型的用法,是作为一个库,嵌入到其他大型语言(称之为宿主语言)的应用程序之中,为应用程序提供参数配置或逻辑描述等功能,带来前所未有的灵活性。•Lua常见的宿主语言有:C/C++,Java,.NET,甚至脚本语言如PHP,Ruby等。He

5、lloLua:工作流程•1.宿主语言建立Lua解释器对象。•2.将宿主语言实现的Lua扩展(若有),如函数等,注册到Lua解释器中,供其使用。•3.读入Lua源程序或预先编译后的Lua程序(可以从文件、字符串、网络等任意来源)。•4.执行读入的Lua程序。HelloLua:lua_StateHelloLua:变量•Lua是动态语言,变量没有类型,存储的值才有类型•var=4•var=“hello”•var={x=10,y=20}•a,b=1,2•八个基本类型*点对HelloLua:控制结构•条件判断:if•迭代:–whil

6、e–repeat–forHelloLua:控制结构-If•ifStatementifa<=0thena=a+1Simpleifstatementendifa<0thena=a+1elseifa>0thena=a–1Nestedif-elsestatementelsea=0endHelloLua:控制结构-While•WhileLoopLuafirstteststhewhilecondition,ifitisfalsethentheloopends,otherwiseitexecutesthebodya={1,2,3,4,5

7、}i=1whilea[i]doprint(a[i])i=i+1endOutput:1,2,3,4,5HelloLua:控制结构-Repeat•RepeatRepeat-untilstatementrepeatsitsbodyuntiltheconditionistrue.Thisensuresthatthebodyoftheloopisexecutedatleastonce.a=0repeata=a+1Thisblockalwaysprint(a)executesatleastonceuntila>10Output:1,2

8、,3,4,5,6,7,8,9,10,11HelloLua:控制结构-NumericLoop•NumericForLoopEvaluatetoInitialconditionIncrementbyfori=1,10,1doprint(i)endOutput:1,2,3,4,5,6,7,8,9,10Hell

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。