类型与值
  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. 51nod 1090 3个数和为0【二分】

    1090 3个数和为0 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等.从 ...

  2. Python的功能模块[4] -> pdb/ipdb -> 实现 Python 的单步调试

    pdb / ipdb 模块 / pdb / ipdb Module pdb 和 ipdb 的主要作用是用于 Python 程序的单步调试,Python 的调试可参考链接. 下面是一个简单的使用示例 i ...

  3. 小白入门篇:flex布局

    --前言 因为这个星期写一个小的项目用到flex布局和grid布局,虽然这两种布局都是兼容性都有问题,但是别急,我觉的以后肯定是会发展并且流行起来的,毕竟google大法好,而且这两个布局真的比一般的 ...

  4. 洛谷 P2183 [国家集训队]礼物

    题目描述 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物 ...

  5. [CC-CHANOQ]Chef and odd queries

    题目大意: 给定$n(10^5)$个线段$[l_i,r_i](1\leq l_i,r_i\leq n)$,有$q(q\leq10^5)$组询问,每次给出$m_i(\sum m_i\leq n)$个点$ ...

  6. UVA 1665 Islands

    题意:输入一个n*m矩阵,每一个格子都有一个正整数,再输入T个整数ti,对于每一个ti,输出大于ti的正整数组成多少个四连快 思路:正着做的话事实上相当于删除连通块,而假设反着做的话就相当于变成添加连 ...

  7. session的作用范围(转)

    session是在服务器端建立的,浏览器访问服务器会有一个jsessionid,浏览器端通过 jsessionid定位服务器端的session,session的创建和销毁由服务器端控制.当浏览器关闭后 ...

  8. GPU hang

    最近做新项目 初期一直遇到个gpu hang的问题 就是command 提交过去gpu 就一直在那里 直到time out 也没什么别的错误提示 gpu debugger还抓不了 解决方案是 缩小之后 ...

  9. log4j教程 9、HTMLLayout

    如果想生成一个HTML格式的文件,日志信息,那么可以使用 org.apache.log4j.HTMLLayout 格式化日志信息. HTMLLayout类扩展抽象org.apache.log4j.La ...

  10. elasticsearch 基础性操作

    1 基础概念 Elasticsearch是一个近实时的系统,从你写入数据到数据可以被检索到,一般会有1秒钟的延时.Elasticsearch是基于Lucene的,Lucene的读写是两个分开的句柄,往 ...