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. 利用@property实现可控的属性操作

    利用@property实现可控的属性操作 Python中没有访问控制符, 不像java之类的 public class Person{ private int x public int getAge( ...

  2. poi操作excel的基本用法

    这周公司要用excel作为数据存储格式做一个文具申请的功能,感觉以前本来很简单的功能变复杂了不少,但是还是记录一下一些excel的基本用法. 写在最前面:这里只介绍一些excel的基本存储方式(读,写 ...

  3. Java时间日期格式转换

    1.这个是系统自动默认的时间格式,或者说是美式格式: Long time = System.currentTimeMillis();                Date date = new Da ...

  4. MongoDB修改器总结

    1"$set":用来制定一个字段值,若不存在,则创建:    一般用于点加一个字段   db.users.update({name:"joe"},{" ...

  5. canvas游戏之贪食蛇

    直接上效果图: 这个贪食蛇关键地方在于数组,它的长度增加其实是数组的增长,就是数组的向前追加等操作,核心就是数组的操作. 完整代码: <!DOCTYPE html> <html> ...

  6. 微软BI 之SSIS 系列 - 使用 SQL Profilling Task (数据探测) 检测数据源数据

    开篇介绍 SQL Profilling Task 可能我们很多人都没有在 SSIS 中真正使用过,所以对于这个控件的用法可能也不太了解.那我们换一个讲法,假设我们有这样的一个需求 - 需要对数据库表中 ...

  7. Jquery实现AJAX拦截

    前几天项目需要实现一个AJAX拦截,于是就用jquery写了一个,这里分享一下. 需求是这样的,ajax不是我来写,所有说我是不能动ajax的,并且我也不知道什么时候它会发生,为了方便项目经理让我把它 ...

  8. 数组的一个强大函数splice,[增,删,改]

    // var a = [1,2,3]; // a.splice(0); // console.log(a); >>[] // a.splice(1); // console.log(a); ...

  9. Network - 互联网协议入门

    珠玉在前,不在赘言 互联网协议入门(一) 互联网协议入门(二) 通信协议:HTTP.TCP.UDP 互联网协议入门 互联网协议入门深入 当你输入一个网址,实际会发生什么? Wireshark基本介绍和 ...

  10. Tools - VirtualBox

    为CentOS虚拟机安装增强功能 启动CentOS虚拟机,点击"菜单 -> 设备 -> 安装增强功能". vboxadd的映像文件将会被挂载到虚拟机,在桌面也可以看到, ...