断断续续的看这本书快一个月了,由于平时要上班所以读书时间是零碎的,再加上直接看的是英文版,而自己的英语水平就那样,所以进度不咋样。快一个月了,300来页的电子版至今才看到40来页。当然一开始我也没做很快就要看完这本书的打算,因为Lua对于我来说是一种新的语言,本身C++熟练度就有待提高,现在学Lua也是本着提升自己技能而出发的。所以一开始的决定就是慢慢来,学了看了就得懂,要尽量做到学了一遍就会用。

一开始没有打算写笔记,这跟我当时自学C++不一样。学C++的时候,我看《C++ Primer 4》的时候差不多是一手书本一手笔记本这样学过来的,所以看完那本书我的笔记本也差不多写满了。现在学Lua没有做笔记,总感觉少了点啥,又加上看的是英文版,后来想想看完书写写学习笔记或许能加深自己的理解,所以在学了快一个月的时候,开始决定写学习笔记了。现在看到part1的第三章了,然后慢慢把前面的内容整理下,当做是复习吧。

所有的代码都是在mac环境下用终端或者sublime编写的。

《Programming in Lua 3》Part1

1.Getting Started

一开始的"Hello World"是很简单的,然而第二个稍微复杂点的函数则出了点问题:

--define a factorial function
function fact(n)if n == 0 thenreturn 1elsereturn n * fact(n-1)end
endprint("enter a number:")
a = io.read("*n")
print(fact(a))

这是一个简单的阶乘函数,由于我是参考网友建议用的sublime编辑器,我用sublime运行这段代码老是有问题,查了下就是 a = io.read("*n") 这里,a得不到数据,而我转用mac上的终端运行这段代码则能运行成功。对于这个问题我目前不知道该怎么处理,留下个疑问吧~这里的简单使用到了Lua的函数,以function开始,后接函数名和参数表,以end结尾。函数相关的在之后有详细介绍。

1.1 Chunks (语句块)?

a.  Lua中语句间可以用";"分隔符也可以不用,因而以下语句都是合理的:

a = 1
a = 1;
a = 1; b = 2
a = 1 b = 2

因个人习惯不同,可以有不同的使用风格。

b. 如果已经配置好了mac下的Lua环境,则运行终端,输入"lua",则进入了lua的运行环境(不知道可不可以这么说),退出则是(ctrl -d UNIX,ctrl -z Windows),或者输入os.exit()命令退出。

c. 书上提到的-i命令暂时不知道如何使用,在sublime里面输入这个会报错,不知道是啥原因。而另外一个函数dofile则使用成功,相当于在一个lua脚本文件中调用另外一个lua脚本文件,如在test1.lua中写dofile("test2.lua"),则相当于打开了test2.lua文件,可以调用这个文件中定义的一些东西。书作者也是这么推荐,如果一个chunk过于庞大,则推荐将其单独写一个脚本文件,然后用-i命令或者dofile函数调用这个脚本文件。

1.2 Some Lexical Conventions (语法约定)?

a. 关于变量命名:Lua中的变量命名可以是字母、数字和下划线,并且规定不能以数字开头。这个和C++里面的一样。并且作者也告诫了变量命名的时候不要使用连续的大写字母,因为lua对这种命名方法有特殊的用途。而作者也约定了将下划线用于虚变量(?)的命名。

当然,和C++一样,有一些变量名是不能随便用的,如and、break、do之类的,这个是lua要用的;

并且,lua是区分大小写的,这意味着do和Do、DO表示的是三个意思。

b.关于注释:

lua也提供了两种注释的方式:

单行注释的话以"--"开头,如:

--test comment

多行注释的话以"--"开头,后面接"[[]]",如:

--[[
test  comment
]]

还有一种方式是"--[[ --]]",如:

---[[
comment
--]]

而较有意思的是,针对多行注释的第二种形式,在:--[[前面再加一个-便整体取消了注释,如:

我觉得这样挺方便的。

1.3 Global Variables

Lua中的全局变量不需要初始化就可以使用,没有初始化的变量使用的时候,其值为nil;而当我们将某个全局变量赋值为nil,系统便会回收该变量占用的内存,因此这应该能理解为Lua的内存回收机制吧?

1.4 The Stand-Alone Interpreter

这一部分的内容暂时没有看懂讲的是什么,主要是我在sublime里面实现不了这部分所讲的东西。。。

OK,第一章开篇的就这些,东西比较简单,讲的内容算是带着入门吧~~

继续加油~!

《Programming in Lua 3》读书笔记(一)相关推荐

  1. mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...

    MySQL权威指南读书笔记(三) 第二章:MYSQL数据库里面的数据 用想用好MYSQL,就必须透彻理解MYSQL是如何看待和处理数据的.本章主要讨论了两个问题:一是SQL所能处理的数据值的类型:二是 ...

  2. MongoDB权威指南读书笔记——CRUD

    插入并保存文档 插入是向MongoDB中添加数据的基本方法.可以使用Insert方法向目标集合插入一个文档:db.foo.insert({"bar" : "baz&quo ...

  3. HTTP权威指南读书笔记

    <<HTTP权威指南>>读书笔记 第一部分:Web的基础 第1章:HTTP概述 主要内容 1.什么是HTTP 2.HTTP的基本组件 HTTP HTTP:HTTP(Hypert ...

  4. HTML5权威指南----读书笔记

    <!DOCTYPE html> <html> <head><meta name = 'keywords' content="HTML5权威指南--- ...

  5. 计算机网络和http权威指南 读书笔记

    计算机网络笔记 网络层 网络层向上提供无连接的,尽最大努力交付的数据报服务 网络层不提供数据质量承诺 物理层使用的中间设备叫转发器repeater 数据链路层叫网桥bridge 网络层叫路由器rout ...

  6. MapReduce总结 + 相关Hadoop权威指南读书笔记(未完......欢迎补充,互相学习)

    文章目录 MapReduce概述 MapReduce优缺点 MapReduce核心思想 MapReduce进程 MapReduce编程规范 WordCount 案例实操 本地测试 集群测试 Hadoo ...

  7. android开发读书笔记,android开发权威指南读书笔记

    第17章 Fragment 1.在res目录下增加 layout-sw600dp 目录,用于存放7英寸及以上尺寸屏幕的布局文件.10英寸以上平板用 sw720dp.如果是更小的屏幕,如 480*800 ...

  8. java性能权威指南中文_Java性能权威指南读书笔记--之一

    JIT(即时编译) 解释型代码:程序可移植,相同的代码在任何有适当解释器的机器上,都能运行,但是速度慢. 编译型代码:速度快,电视不同CPU平台的代码无法兼容. java则是使用java的编译器先将其 ...

  9. javascript权威指南读书笔记之二——词法结构

    本章讲述的内容,用通俗的语言来说,就是应该注意的地方,这些也许和我们所学的其他语言类似,也许完全不同,比如一开始就介绍说javascript程序中的每个字符都是用两个字节表示的,但有些程序设计者习惯于 ...

  10. HTTP权威指南读书笔记(一)HTTP概述、URL和资源及报文详解

    一.HTTP概述 1.WEB客户端和服务器. 2.资源:资源可以是各种格式的静态文件,也可以是应用程序. 3.媒体类型 4.URI:统一资源标识符 URL:统一资源定位符. URL的第一部分称为方案: ...

最新文章

  1. python黑色变白色_使用Python openCV PIL将黑色更改为白色,但不将白色更改为黑色...
  2. 计算机网络:分组交换
  3. HDU——2064汉诺塔III
  4. Ivan Fedorov:用已知无法想象未来 - Mixin Network开发者访谈
  5. 2020年CNCF和开源项目开发速度
  6. P5180-[模板]支配树
  7. 设计模式之行为类模式PK
  8. virtualbox安装android6.0并设置分辨率为1920x1080x32
  9. 不降的数字(51Nod-2499)
  10. c语言创建一个文本文件datadat,c语言文件选择题.docx
  11. MapGIS格式转ArcGIS方法
  12. 计算机三级考点2:管理和运营宽带城域网的关键技术
  13. Windows使用 cwRsync进行文件夹同步
  14. 偷菜游戏,悄悄开启毁灭中国的魔盒
  15. 推荐一个免费服务器网站|亲测可用
  16. A005:查找文件之find, locate, whereis, which, type
  17. 2013年09月27日
  18. Trait和Trait Objec
  19. 移动端UI框架小汇总
  20. Illustrator 2021 (AI 2021)下载 功能介绍

热门文章

  1. 出海的成本越来越高,奈何
  2. 创建新项目时候一直卡在 idealTree:moni: sill idealTree buildDeps
  3. Python 多线程卖票问题
  4. A001-185-2531
  5. 文件及文件夹操作- File类、Directory 类、FileInfo 类、DirectoryInfo 类
  6. LOL九周年战斗之夜 钻石宝箱获取攻略
  7. [Java] Lock(锁)的tryLock失败是否需要unlock?
  8. 实用信息:网络硬盘服务不完全列表
  9. 机器学习 大数据 数据挖掘_什么是机器学习? 来自数据的情报
  10. Android中实现一键分享功能