类型与值
  lua是一种动态类型的语言,在语言中没有类型定义的语法,每个值都携带了它自身的类型信息
  lua中有8种基础类型
    nil
      只与自身相等assert(nil==nil),空值
    boolean
      true
      false
      nil和false是假,其它都是真,0和""都是true
    number
      浮点实数,没有使用整数
    string
      8位编码也就是个char
      可以包含任何字符,包括\0,很象stl里的string类,可以当二进制流看待
      string.len和#返回的是实现长度,不以\0为结束标记
      不可以修改字符串变量内容,只能重新赋值
      lua能高效的处理大字符串,不用怀疑lua字符串的处理能力
      特殊字符与c一样,如换行是\n tab是\t
      多行字符串定义[[ ]]
      \<ddd>一至三个数据表示字符,ASCII码
      在字符串上使用数学运算会先前字符串转换成数字
      ".."是字符串连接操作符"wang".."ning"
      在数字后使用字符串连接操作符".."时,要有一个空格,不然会认为是小数点
      尽量不要依赖lua的自动类型转换,可以使用tostring,tonumber手动转
    userdata
      一块由c向lua申请的内存,存在lua里,申请者自行解析
    function
      lua中的函数是作为”第一类值“,可以随意赋给一个变量
    thread
      协同线程lua没有真正的多线程,他都是串行执行的,生产者消费者模式
      只能自己停止自己
      可以使用守护线程来在多个协同线程中通过状态判断来模拟多线程的环境
    table
      lua里唯一的一种数据结构
      lua里的module package object都是用table实现的
      table是一个对象,所有对他的
      可以表示出多种数据结构
        数组
          可以不写key添加数据如:t={1,2,3,4}
          自动定义从下标1开始顺序向后加一
          所有没有显示声明key的项都是自动生成数组下标的
          lua里与c不一样的地方就是一标都人1开始,一定记住
          t={"a", 2="b", "c", 4=1, 2, 6=3}
          t[1] = "a"
          t[2] = "c"
          t[3] = 2
          t["2"] = "b"
          t["4"] = 1
          t["6"] = 3
          后面三项不再是数组而是hash表
          使用#可以得到数组长度,但要求所有下标是从1开始连续的
          t={}
          t[1] = 1
          t[100] = 100
          的长度是1,因为它以找到nil的值为结束,以上的定义方式数组断了
          二维数组就是table套table
          t={ {100,200}, {300,400}}
          t[1][1] = 100
          t[1][2] = 200
          t[2][1] = 300
          t[2][2] = 400
        链表
          t1 = {p=t3, v="value", n=t2}
          t2 = {p=t1, v="value", n=t3}
          t3 = {p=t2, v="value", n=t1}
        环形链表
        hash表
        队列
        栈
      可以使用lua中的任何类型作key和value,除nil不能当key,当value是删除
      只能显示的声明一个table,t = {}
      添加数据
        t = {"a","b","c",1,2,3}
        t={1="a",2="b",3="c",4=1,4=2,6=3}
        以上两人个定义不相等,显示声明时字符串类型的key可以不写双引号
        t[1] = "a"
        t[2] = "b"
        t[3] = "c"
        t[4] = 1
        t[5] = 2
        t[6] = 3
        这个与第一个相同
        t["1"] = "a"
        t["2"] = "b"
        t["3"] = "c"
        t["4"] = 1
        t["5"] = 2
        t["6"] = 3
        这个与第二个相同
        t={x="lua"}
        t={} t.x="lua" t["x"] = "lua"
  使用type函数可以返回一个可以显示的字符串
 
 
 

lua学习笔记(三)的更多相关文章

  1. LUA学习笔记三·时间等操作系统库

    1.构造时间 2.时间制定格式输出 3.计时器(闭包)os.difftime (t2, t1) 返回以秒计算的时刻 t1 到 t2 的差值. (这里的时刻是由 os.time 返回的值). 在 POS ...

  2. [转]LUA 学习笔记

    Lua 学习笔记 入门级 一.环境配置 方式一: 1.资源下载http://www.lua.org/download.html 2.用src中的源码创建了一个工程,注释调luac.c中main函数,生 ...

  3. Lua学习笔记4. coroutine协同程序和文件I/O、错误处理

    Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...

  4. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  5. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  6. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  7. Lua 学习笔记(一)

    Lua学习笔记 1.lua的优势 a.可扩张性     b.简单     c.高效率     d.和平台无关 2.注释 a.单行注释 --        b.多行注释 --[[  --]] 3.类型和 ...

  8. Lua学习笔记6:C++和Lua的相互调用

        曾经一直用C++写代码.话说近期刚换工作.项目组中的是cocos2dx-lua,各种被虐的非常慘啊有木有.     新建cocos2dx-lua项目.打开class能够发现,事实上就是C++项 ...

  9. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  10. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

随机推荐

  1. 51 nod 1419 最小公倍数挑战【数论/互质+思维】

    1419 最小公倍数挑战 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 几天以前,我学习了最小公倍数.玩得挺久了 ...

  2. Codeforces Round #445 D. Restoration of string【字符串】

    D. Restoration of string time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  3. hdu3507(初识斜率优化DP)

    hdu3507 题意 给出 N 个数字,输出的时候可以选择连续的输出,每连续输出一串,它的费用是 这串数字和的平方加上一个常数 M. 分析 斜率优化dp,入门题. 参考 参考 得到 dp 方程后,发现 ...

  4. 用fiddler测试移动端翻页

    大家在移动端是怎么测试翻页的,肯定都是下拉或上滑吧,我也是这样测试的 但如果你要验证数据是否与pc端数据一致时,可能是第一页,第二页看看,或最后几页数据看看,在pc端看简单,直接点击最后一页就行,在移 ...

  5. 多模态检索之CCA算法

    多模态检索主要是实现不同模态下的数据能相互检索,例如文本模态数据,和图像模态数据.要能实现他们之间的相互检索,首先要是它们相互关联起来.CCA·算法用于多模态检索步骤:      1)首先提取文本,图 ...

  6. 命令注入工具Commix

    命令注入工具Commix   命令注入(Command Injection)攻击是针对Web应用的一种攻击方式.很多Web应用会读取用户提交的数据,然后传递到系统Shell,执行特定的操作,如为用户创 ...

  7. 十. 图形界面(GUI)设计4.面板

    面板有两种,一种是普通面板(JPanel),另一种是滚动面板(JScrollPane). JPanel 面板是一种通用容器,JPanel的作用是实现界面的层次结构,在它上面放入一些组件,也可以在上面绘 ...

  8. Radius报文解析

    RADIUS ,是远程认证拨号用户服务的简称.RADIUS原先设计的目的是为拨号用户进行认证和计费.后来经过多次改进,形成了一项通用的认证计费协议,主要完成在网络接入设备和认证服务器之间承载认证.授权 ...

  9. CentOS 6.9安装类型选择(Basic Server/Web Server)

    Desktop :基本的桌面系统,包括常用的桌面软件,如文档查看工具. Minimal Desktop:基本的桌面系统,包含的软件更少. Minimal:基本的系统,不含有任何可选的软件包. Basi ...

  10. Systems Performance: Enterprise and the Cloud 读书笔记系列

    http://blog.csdn.net/xiaonanAndroid/article/category/2557735