GJM : Lua 语言学习笔记
Lua笔记
- 容易与C/C++整合
- Lua所提供的机制是C所不善于的:高级语言,动态结构,简洁,易于测试和调试.
- Lua特有的特征:
`1:可扩展性.卓越的扩展性导致了很多人将Lua用作搭建领域语言的工具.
`2:简单.内容少,功能强大.易于学习
`3:高效率:很高的执行效率
`4与平台无关:几乎可以运行在所有的系统上.Lua不是通过使用条件编译实现平台无关,而是完全使用ANSI(iso)C,这就意味着只要有ANSIC编译器就能编译并使用Lua.
- Lua大部分强大的功能来自于类库,Lua长处之一就是通过新类型和函数扩展其功能.
-->表示 语句的输出 或者 表达式的结果
Print(10) --> 10
13+3-->16
<--> 表示 等价
第一章:起点
prompt
- adj. 敏捷的,迅速的;立刻的
- vt. 提示;促进;激起;(给演员)提白
- n. 提示;付款期限;DOS命令:改变DOS系统提示符的风格
- adv. 准时地
文件hello.lua
命令运行
prompt> lua hello.lua
n的阶乘
function fact(n)
if n == 0 then
return 1;
else
return n*fact(n-1)
end
end
print(“enter a number”)
a = io.read(“*number”)
print(fact(a))
1.1
Chunks
Chunk是一系列语句,Lua执行的每一块语句, 如: 一个文件 或者交互模式下的每一行都是一个Chunk.
每个语句结尾的分号是可选的,不过如果同一行有多个语句最好用 ; 分开.
键入的每个命令在键入回车后立即被执行,键入文件结束符可以退出交互模式,或者调用OS库的os.exit()也可以退出.
在交互模式下,Lua通常把每一个行当做一个Chunk,但如果一行不是一个完整的Chunk,会等待输入知道得到一个完整的Chunk.
-l命令
调用require 在指定目录下搜索文件
-i命令 要求lua运行指定Chunk后进入交互模式.
dofile(“文件名.lua”);
1.2
全局变量
Lua不需要声明全局变量,给一个变量赋值即创建了这个全局变量,访问一个没有赋值的全局变量不会错,会得到一个nil的结果
删除全局变量,只需要将变量赋值为nil
即为:当且仅当一个变量不等于nil时,这个变量存在.
1.3
词法约定
标示符:字母(letter)或者下划线开头的字母,下划线,数字序列.最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的.Lua中,letter的含义是依赖于本地环境的.
注意:Lua是大小写敏感的.
注释:单行注释:--
多行注释:--[[ --]]
GJM : Lua 语言学习笔记的更多相关文章
- GJM : JavaScript 语言学习笔记
JavaScript ------------------------------变量声明 : var a;变量赋值 : var a = 12; 函数声明 : var mAwesomeFunction ...
- GJM : C#语言学习笔记
--------------------------------------C#--------------------------------------if (tom == null) tom = ...
- lua本学习笔记功能
Lua本学习笔记功能 1. 函数返回 指定任务的主要功能是完成,在这种情况下,函数被用作调用语句.函数可以计算并返回值,在这种情况下,作为分配值表达式语句使用. 语法: funcationfunc_ ...
- HTML语言学习笔记(会更新)
# HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...
- 2017-04-21周C语言学习笔记
C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...
- 2017-05-4-C语言学习笔记
C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...
- GO语言学习笔记(一)
GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...
- Haskell语言学习笔记(88)语言扩展(1)
ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...
- Go语言学习笔记十三: Map集合
Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...
随机推荐
- 利用@property实现可控的属性操作
利用@property实现可控的属性操作 Python中没有访问控制符, 不像java之类的 public class Person{ private int x public int getAge( ...
- poi操作excel的基本用法
这周公司要用excel作为数据存储格式做一个文具申请的功能,感觉以前本来很简单的功能变复杂了不少,但是还是记录一下一些excel的基本用法. 写在最前面:这里只介绍一些excel的基本存储方式(读,写 ...
- Java时间日期格式转换
1.这个是系统自动默认的时间格式,或者说是美式格式: Long time = System.currentTimeMillis(); Date date = new Da ...
- MongoDB修改器总结
1"$set":用来制定一个字段值,若不存在,则创建: 一般用于点加一个字段 db.users.update({name:"joe"},{" ...
- canvas游戏之贪食蛇
直接上效果图: 这个贪食蛇关键地方在于数组,它的长度增加其实是数组的增长,就是数组的向前追加等操作,核心就是数组的操作. 完整代码: <!DOCTYPE html> <html> ...
- 微软BI 之SSIS 系列 - 使用 SQL Profilling Task (数据探测) 检测数据源数据
开篇介绍 SQL Profilling Task 可能我们很多人都没有在 SSIS 中真正使用过,所以对于这个控件的用法可能也不太了解.那我们换一个讲法,假设我们有这样的一个需求 - 需要对数据库表中 ...
- Jquery实现AJAX拦截
前几天项目需要实现一个AJAX拦截,于是就用jquery写了一个,这里分享一下. 需求是这样的,ajax不是我来写,所有说我是不能动ajax的,并且我也不知道什么时候它会发生,为了方便项目经理让我把它 ...
- 数组的一个强大函数splice,[增,删,改]
// var a = [1,2,3]; // a.splice(0); // console.log(a); >>[] // a.splice(1); // console.log(a); ...
- Network - 互联网协议入门
珠玉在前,不在赘言 互联网协议入门(一) 互联网协议入门(二) 通信协议:HTTP.TCP.UDP 互联网协议入门 互联网协议入门深入 当你输入一个网址,实际会发生什么? Wireshark基本介绍和 ...
- Tools - VirtualBox
为CentOS虚拟机安装增强功能 启动CentOS虚拟机,点击"菜单 -> 设备 -> 安装增强功能". vboxadd的映像文件将会被挂载到虚拟机,在桌面也可以看到, ...