类型与值
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函数可以返回一个可以显示的字符串

转载于:https://www.cnblogs.com/lifesteven/p/4169356.html

lua学习笔记(三)相关推荐

  1. 微信小程序连接物联网(二):NodeMCU Lua学习笔记

    索引 这是用微信小程序遥控开门的系列文章,具体微信小程序连接物联网的代码在第三章提及. 微信小程序连接物联网(一):初始化ESP8266 NodeMCU 微信小程序连接物联网(二):NodeMCU L ...

  2. lua 学习笔记---游戏开发第一步

    lua 学习笔记-从数组开始 数组 数组大小范围不一定需要在声明是确定,可以改变 一维数组 例 > array = {"Lua", "lualu"} &g ...

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

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

  4. J2EE学习笔记三:EJB基础概念和知识 收藏

    J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...

  5. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  6. Ethernet/IP 学习笔记三

    Ethernet/IP 学习笔记三 原文为硕士论文: 工业以太网Ethernet/IP扫描器的研发 知网网址: http://kns.cnki.net/KCMS/detail/detail.aspx? ...

  7. Lua 学习笔记(一)

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

  8. iView学习笔记(三):表格搜索,过滤及隐藏列操作

    iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...

  9. 吴恩达《机器学习》学习笔记三——多变量线性回归

    吴恩达<机器学习>学习笔记三--多变量线性回归 一. 多元线性回归问题介绍 1.一些定义 2.假设函数 二. 多元梯度下降法 1. 梯度下降法实用技巧:特征缩放 2. 梯度下降法的学习率 ...

  10. Python基础学习笔记三

    Python基础学习笔记三 print和import print可以用,分割变量来输出 import copy import copy as co from copy import deepcopy ...

最新文章

  1. 如何使用Windows开发机为iPhone开发?
  2. webpack 打包编译优化之路
  3. Unable to execute dex: Multiple dex files define Lcom
  4. 分享一篇关于“每日优鲜”的PRD文档
  5. linux PCI驱动调用字符设备驱动方式
  6. linux中的echo%3e文件,Linux学习笔记-shell脚本中${}的使用方法
  7. 磁盘分区需要知道的概念
  8. zabbix的源码安装
  9. 类String的比较
  10. 重磅!开放EasyCharts插件源代码!
  11. 人文社科课题中计算机知识的作用,人文社科类项目申请书模板.doc
  12. 如何简单快速的写出幸运转盘抽奖
  13. Pycharm调试卡在“Collecting data...”
  14. 浩方对战平台原理分析
  15. Nmap使用技巧总结
  16. mac java 更新_mac版java怎么更新升级 mac版java更新升级方法
  17. vpc经典网络区别_阿里云经典网络与VPC网络互通的实现
  18. 毕业设计-基于机器自动驾驶目标检测研究-YOLO
  19. asm 多工 控制文件
  20. 一、使用JDK的keytool生成JKS以及获取JKS的信息

热门文章

  1. nginx 内置变量大全(转)
  2. Oracle删除用户和表空间
  3. hadoop异常 java.io.IOException: Job status not available
  4. uploadify 火狐不兼容问题解决方案
  5. 设计模式--策略模式(strategy)
  6. Windows Serer2003域升级到Windows Server2008R2域
  7. 构建直接路由模式(DR)的LVS
  8. python多线程运用
  9. socket bufferedinputstream通信读取不到服务器返回的响应_TCP角度看socket通信过程,socket怎么表示三次握手,四次挥手...
  10. 神经网络核心基础:MP Model