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还简单. ...
随机推荐
- 技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)
1.前言 作为应用层开发人员,接触最多的网络协议通常都是传输层的TCP(与之同处一层的另一个重要协议是UDP协议),但对于IP协议,对于应用程序员来说更多的印象还是IP地址这个东西,再往深一点也就很难 ...
- android 股票数据通过日K获取周K的数据 算法 源码
目前的数据是从新浪接口获取的, http://biz.finance.sina.com.cn/stock/flash_hq/kline_data.php?symbol=sh600000&end ...
- javaweb回顾第八篇如何创建自定义标签
前言:在javaweb开发中自定义标签的用处还是挺多的.今天和大家一起看自定义标签是如何实现的. 1:什么是标签 标签是一种XML元素,通过标签可以使JSP页面变得简介易用,而且标签具有很好的复用性. ...
- 快速入门系列--WebAPI--01基础
ASP.NET MVC和WebAPI已经是.NET Web部分的主流,刚开始时两个公用同一个管道,之后为了更加的轻量化(WebAPI是对WCF Restful的轻量化),WebAPI使用了新的管道,因 ...
- Java并发包中CountDownLatch的工作原理、使用示例
1. CountDownLatch的介绍 CountDownLatch是一个同步工具,它主要用线程执行之间的协作.CountDownLatch 的作用和 Thread.join() 方法类似,让一些线 ...
- 当你还在纠结于ORM的性能时,我已经远远的把你抛在脑后
最近找工作面试,问到一些过去的工作和项目经验.我把公司用到的ORM框架(LLBL Gen)拿出来谈一谈,说一下他的优势,对方却一直追问ORM的好处,性能方面的问题,让我有时候都不知道如何回答,产生了不 ...
- java集合框架之Set
Set集合 元素不可以重复,是无序. 方法与list相同 HashSet:不保证set的迭代顺序,不同步,内部数据结构是哈希表 如果存自定义对象则需要覆盖equals和hashCode方法 先比较ha ...
- 邻接表无向图(二)之 C++详解
本章是通过C++实现邻接表无向图. 目录 1. 邻接表无向图的介绍 2. 邻接表无向图的代码说明 3. 邻接表无向图的完整源码 转载请注明出处:http://www.cnblogs.com/skywa ...
- C#预处理器指令 ,你造吗??? (●'◡'●)
什么是c#预处理指令?? 用于在 C# 源代码中嵌入的编译器命令. C#预处理器指令有哪些?? ↓↓↓这些就是预处理器指令啦 下面我们一一道来(●'◡'●) 1.#if ,#elif,#else,en ...
- spring aop源码实现分析
1. 先分析Advice before执行Cglib2AopProxy的intercept方法: /** * General purpose AOP callback. Used when the t ...