Lua学习笔记一
学习了有一周多了。之前一直不想献丑,但还是记录下这个过程。
第1章 开发软件搭建
1. ubuntu 下lua安装
sudo apt-get install lua5.1
2.win下的环境搭建。
我选择的是Lua For Windows。一键安装。保存为LUA格式即可运行
预计在Linux下 开发工具 用 sublime_text,实际使用notepadqq,个人喜好无所谓。
第1章 语法学习
1.1 语法学习
Lua -i filename 开启调试。
dofile (“filename.lua”) -- 加载程序集
_word 语法。系统标识符
注释: --[[ --]]
Nil特殊值,空
删除全局变量 赋值nil
转义字符 P11
1.2 笔记,类型与值
Nil boolean number string
Table 实质是一个对象,userdata thread
A[“name”] 等同于 A.name
长度操作符#。
1.3 表达式
字符串连接: “..”
操作符优先级 P22.
1.4 语句
新鲜的赋值玩法
X,y=y,x
奇怪的本地变量加速法
Local foo=foo --将全局变量赋值给本地变量使得访问速度提高
1.If then .. Elseif .. end
2. While .. Do .. End
3. Repeat
4.For
a)For start,end,step do ..end
b)泛型 For i,v inpairs(a) do print(v) end
1.5 函数
1.函数的参数需要用括起来,除非是 单个字符串或table构造表达式的参数
2.Function functionname(par) --body end
3.允许一个函数多个返回值
4.Return 后不用括号,否则可能会误解P38。
5.变长参数 function add {...}
6.具(命)名实参,named arguments 通过对象及其属性实现。(避免出错)
1.6 深入函数
1.函数是一种第一类值 first-clas value。 函数可以看作是 一个变量,函数名=变量名,函数体=函数内容。类似lisp。
2.概念:非局部的变量。非每次都临时创建,而是在其生命周期范围内的“全局”。闭包?
3.尾调用。
1.7 章迭代器与泛型for
未细看。参考lisp和C#中的迭代器。估计是类似的。
第八章编译执行与错误
第九章协同程序(多线程编程)
类似线程。Coroutine。
Coroutine create 创建
一个协同程序的4个状态 spended running dead normal
挂起 coroutine.yield() 恢复 coroutine.resume(something)
1.8 Lua如何实现面向对象
类 = table
类的函数 = table下的一个字段
类的私有函数 = function 下加关键字 selef
继承 = 每个lua下新new的对象本身也可以作为一个继承后的类
B作为a的原型,
Set meta table (a,(__index = b))
多重继承:使用table记录多个基类
Private私有性:lua本身没有提供private的机制,他定位在中小型。
Single-method 静态方法?
1.9 弱引用 weak table
通过元表中的__mode字段决定。K->key是弱引用 V->value是弱引用。
弱引用会被回收掉。
1.9.1 备忘录函数(缓存)
空间换时间。弱引用应用与此很合适。
1.10 重要库table的使用
Insert 、Remove 、Sort 、Concat
1.11 字符串库
Lua的匹配不使用正则,自定义一套。
第1章 小结
1.容错舍弃思想:若参数不够则放置为nil,多了则舍弃。适用于函数的参数,数组等的赋值。
2.就 Lua 来讲,语言的特性主要指用 table 表示所有的东西,用 metamethod 做出优雅的解决方案。还有 coroutine 。[摘自LUA作者的话]
3.无视章节编号。然后书是参考lua程序设计第二版。基本上直接看书想睡觉
Lua学习笔记一的更多相关文章
- [转]LUA 学习笔记
Lua 学习笔记 入门级 一.环境配置 方式一: 1.资源下载http://www.lua.org/download.html 2.用src中的源码创建了一个工程,注释调luac.c中main函数,生 ...
- Lua 学习笔记(一)
Lua学习笔记 1.lua的优势 a.可扩张性 b.简单 c.高效率 d.和平台无关 2.注释 a.单行注释 -- b.多行注释 --[[ --]] 3.类型和 ...
- Lua学习笔记6:C++和Lua的相互调用
曾经一直用C++写代码.话说近期刚换工作.项目组中的是cocos2dx-lua,各种被虐的非常慘啊有木有. 新建cocos2dx-lua项目.打开class能够发现,事实上就是C++项 ...
- Lua学习笔记4. coroutine协同程序和文件I/O、错误处理
Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...
- (转)Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境
Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境(一)注意:工程必须添加两个宏:“配置属性”/“C或C++”/“预处理器”/“预处理器定义”,添加两个宏:_CRT_SECURE_ ...
- Lua学习笔记:面向对象
Lua学习笔记:面向对象 https://blog.csdn.net/liutianshx2012/article/details/41921077 Lua 中只存在表(Table)这么唯一一种数据结 ...
- Lua学习笔记(二):基本语法
Lua学习指南:http://www.lua.org/manual/ 首先我们要明确的一点是:在Lua中,除了关键字外一切都是变量. Lua关键字 可以查看这个地址:http://www.lua.or ...
- lua学习笔记
工作需要,上周对lua赶进度似地学习了一遍,主要参考<lua中文教程>一书,中间参考一些<lua游戏开发实践>,首先说说这两本书,后者不适合初学,里面是对一个游戏脚本系统进行粗 ...
- 【Lua学习笔记之:Lua环境搭建 Windows 不用 visual studio】
Lua 环境搭建 Windows 不用 visual studio 系统环境:Win7 64bit 联系方式:yexiaopeng1992@126.com 前言: 最近需要学习Unity3d游戏中的热 ...
随机推荐
- Mac安装软件报“打不开。。。,因为它来自身份不明的开发者”的解决办法
问题描述 在Mac上安装git,双击pkg进行安装,报如下图错误: 解决办法 不要双击pkg文件,改成选中文件之后,鼠标右键,选择“打开方式->安装器(默认)”,即可继续安装.
- 如何判断css是否加载完成
要判断这个 CSS 文件是否加载完毕,各个浏览器的做法差异比较大,这次要说IE浏览器做的不错,我们可以直接通过onload方法来处理CSS加载完成以后的处理: // 代码节选至seajs functi ...
- HDU 2069 Coin Change(完全背包变种)
题意:给你5种银币,50 25 10 5 1,问你可以拼成x的所有可能情况个数,注意总个数不超过100个 组合数问题,一看就是完全背包问题,关键就是总数不超过100个.所有我们开二维dp[k][j], ...
- snakebar 的使用
在一次文章阅读的时候,我浏览到一篇文章关于一个新控件的使用,这个控件就是SnakeBar 该控件和Toast控件一样,在程序运行中起着提示的功能. 效果图如下: 代码如下: Snackbar.make ...
- 跟我一起学JQuery插件开发
http://www.cnblogs.com/Leo_wl/archive/2012/04/06/2435511.html 以前一直比较好奇,jquery插件是怎么开发的,怎么写属于自己的插件? 昨天 ...
- 【NOI2016】优秀的拆分 题解(95分)
题目大意: 求一个字符串中形如AABB的子串个数. 思路: 用哈希做到O(1)判断字符串是否相同,O($n^2$)预处理,ans[i]为开头位置为i的形如AA的子串个数.再用O($n^2$)枚举出AA ...
- 如何禁止root用户远程登陆
如果不禁止root用户的远程登陆,就会将root用户暴露在网络环境中, 因为在缺省的安装中root用户是一定存在的,所以root用户容易受到攻击, 所以我们可以禁止root用户的远程登陆来实现保护ro ...
- CF #374 (Div. 2) D. 贪心,优先队列或set
1.CF #374 (Div. 2) D. Maxim and Array 2.总结:按绝对值最小贪心下去即可 3.题意:对n个数进行+x或-x的k次操作,要使操作之后的n个数乘积最小. (1)优 ...
- STM32之EXTI——外部中断
互联网的广大网友,大家早上中午晚上好.EXTI...故名思义..EX表外,出..I表示Intrrupt..所以合起来就是外部中断...说到这..我觉得我最近的六级水平(背单词)又进了一步,稍微自夸了下 ...
- Siteserver-stl:searchOutput(搜索结果)自定义显示样式
stl:searchOutput 自定义显示样式 自定义搜索提交表单需要在<stl:searchOutput>中嵌入显示搜索结果的标签,必须包含的标签 有<stl:pageConte ...