Lua笔记

  1. 容易与C/C++整合
  2. Lua所提供的机制是C所不善于的:高级语言,动态结构,简洁,易于测试和调试.
  3. Lua特有的特征:

`1:可扩展性.卓越的扩展性导致了很多人将Lua用作搭建领域语言的工具.

`2:简单.内容少,功能强大.易于学习

`3:高效率:很高的执行效率

`4与平台无关:几乎可以运行在所有的系统上.Lua不是通过使用条件编译实现平台无关,而是完全使用ANSI(iso)C,这就意味着只要有ANSIC编译器就能编译并使用Lua.

  1. 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 语言学习笔记的更多相关文章

  1. GJM : JavaScript 语言学习笔记

    JavaScript ------------------------------变量声明 : var a;变量赋值 : var a = 12; 函数声明 : var mAwesomeFunction ...

  2. GJM : C#语言学习笔记

    --------------------------------------C#--------------------------------------if (tom == null) tom = ...

  3. lua本学习笔记功能

    Lua本学习笔记功能 1.  函数返回 指定任务的主要功能是完成,在这种情况下,函数被用作调用语句.函数可以计算并返回值,在这种情况下,作为分配值表达式语句使用. 语法: funcationfunc_ ...

  4. HTML语言学习笔记(会更新)

    # HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...

  5. 2017-04-21周C语言学习笔记

    C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...

  6. 2017-05-4-C语言学习笔记

    C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...

  7. GO语言学习笔记(一)

    GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...

  8. Haskell语言学习笔记(88)语言扩展(1)

    ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...

  9. Go语言学习笔记十三: Map集合

    Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...

随机推荐

  1. mysql如果数据不存在,则插入新数据,否则更新的实现方法

    mysql如果数据不存在,则插入新数据,否则更新的实现方法 //如果不存在,则插入新数据 $sql = "INSERT INTO {$ecs->table('cat_lang')} ( ...

  2. KnockoutJS 3.X API 第五章 高级应用(2) 控制后代绑定

    注意:这是一种高级技术,通常仅在创建可重用绑定的库时使用. 默认情况下,绑定仅影响它们应用到的元素. 但是如果你想影响所有的后代元素呢? 为此,只需从绑定的init函数中返回{controlsDesc ...

  3. 关于Thread.currentThread()和this的差异

    重新来看多线程时,被这结果搞懵逼了.不多说,直接上代码: public class MyThread02 extends Thread { public MyThread02() { System.o ...

  4. Spring.NET的AOP怎么玩

    之前公司一直不让使用第三方组件,因此AOP方面的组建一直不能使用,很多面向切面的应用只能通过自己写一些GenericMethod的泛型方法来解决,有一些呆板.由于公司已经开始全面转Java,因此架构组 ...

  5. 移动开发框架剖析(一) Hammer专业的手势控制

    一直在写jQuery的源码教程,都没时间研究别的框架了.Hammer是我项目御用的一个手势库,早期1.x版本的swipe事件的响应不灵敏的问题而改过源码,2.x就已经更正过来,而且源码的结构也整个翻新 ...

  6. .NET面试题解析(03)-string与字符串操作

      系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 字符串可以说是C#开发中最常用的类型了,也是对系统性能影响很关键的类型,熟练掌握字符串的操作非常重要. 常 ...

  7. 信息加密之消息摘要算法的MAC

    MAC是消息摘要算法的第三种实现方式,另外两种方式分别为:MD2\4\5.SHA. MAC的jdk实现:1.默认密钥方式 private static void MAC_JDK(){ try { Ke ...

  8. 使用Html5+C#+微信 开发移动端游戏详细教程: (四)游戏中层的概念与设计

    众所周知,网站的前端页面结构一般是由div组成,父div包涵子div,子div包涵各种标签和项, 同理,游戏中我们也将若干游戏模块拆分成层,在后续的代码维护和游戏程序逻辑中将更加清晰和便于控制. We ...

  9. AngularJS入门心得2——何为双向数据绑定

    前言:谁说Test工作比较轻松,最近在熟悉几个case,差点没疯.最近又是断断续续的看我的AngularJS,总觉得自己还是没有入门,可能是自己欠前端的东西太多了,看不了几行代码就有几个常用函数不熟悉 ...

  10. 【Java基础】序列化与反序列化深入分析

    一.前言 复习Java基础知识点的序列化与反序列化过程,整理了如下学习笔记. 二.为什么需要序列化与反序列化 程序运行时,只要需要,对象可以一直存在,并且我们可以随时访问对象的一些状态信息,如果程序终 ...