关闭

Lua的类型与值

432人阅读 评论(1) 收藏 举报
分类:

首先Lua是一种动态类型的语言。在Lua中一共有8种基础类型:nil(空)、boolean(布尔)、number(数字)、string(字符串)、userdata(自定义类型)、function(函数)、thread(线程)和table(表)。

print(type("Hello world"))     -->string
print(type(10.4*3))               -->number
print(type(print))                   -->function
print(type(type))                   -->function
print(type(true))                    -->boolean
print(type(nil))                       -->nil
print(type(type(x)))               -->string
变量没有预定义的类型,任何变量可以包含任何变量的值。


nil是一种类型,它只有一个值nil,它的主要功能是区别于其他任何值。就像之前所说的,一个全局变量在第一次赋值前的默认值就是nil,将nil赋予一个全局变量等于删除它。Lua将nil用于表示一种”无效值的情况“,即没有任何有效值的情况。


boolean类型有两个可选值:false和true,这与传统的布尔值一样。然而boolean却不是一个条件之的唯一表示方式。在Lua中任何值都可以表示一个条件。Lua将false和nil作为”假“,而将除此之外的其他值视为“真”。还有一点需注意,Lua在条件测试中,将数字零和空字符串也都视为”真“。


number类型用于表示实数。Lua没有整数类型,因为没有必要。书写一个数字常量时,可以使用普通的写法,也可以使用科学技术法。


Lua中的字符串时不可变的值。不能像在C语言中那样直接字符串的某个字符,而是应该根据修改要求来创建一个新的字符串。Lua的字符串和其他Lua对象一样,都是自动管理内存机制,不需要担心字符串的分配和释放,并且Lua的字符串小到只包含一个字母,大到可以包含整本书。在Lua中100K到1M的字符串时很常见的。字面字符串需要以一对匹配的单引号或双引号来界定。


table类型实现了”关联数组“。它是一种具有特殊索引的数组。不仅可以通过整数来索引它,还可以使用字符串或其他类型的值(除了nil)来索引它。此外table没有固定的大小,可以动态的添加任意数量的元素到一个table中。table是Lua主要的数据结构机制,具有强大的功能。当一个程序再也没有对一个table的引用时,Lua的垃圾收集器最终会删除该table,并复用它的内存。和全局变量一样,当table的某个元素没有初始化时,它的内容就为nil。另外还可以像全局变量一样,将nil赋予table的某个元素来删除它。









0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

lua深度克隆的实现(lua基本数据类型传的是值,表类型传的是引用)

local function main() require "src/boot/Bootstrap" BootStrap:boot( ) local value ...
  • themagickeyjianan
  • themagickeyjianan
  • 2016-05-06 11:19
  • 1196

Lua-1---类型,值和变量

print(“一、类型,值和变量”)–行注释语句–[[ 注释段落语句 ]]–变量不需要定义,可以直接赋值 count = 100 –全局变量 local count = 100 –局部变量– ...
  • wade333777
  • wade333777
  • 2016-07-13 08:39
  • 1162

Lua语言模型 与 Redis应用

从 2.6版本 起, Redis 开始支持 Lua 脚本 让开发者自己扩展 Redis. 本篇博客主要介绍了 Lua 语言不一样的设计模型(相比于Java/C/C++、JS、PHP), 以及 Red...
  • hanqing280441589
  • hanqing280441589
  • 2016-10-01 10:01
  • 11987

3.lua学习笔记:类型与值

lua内置8种类型:nil,  boolean,  number,  string,  userdata,   function,   thread,   table  nil:     ...
  • qdx411324962
  • qdx411324962
  • 2014-12-01 23:01
  • 385

Lua 类型与值

Lua是一个动态类型的语言,没有类型定义,每个值都有自己的类型。 Lua有8个基本类型,nil, boolean, number, string, userdata, functio...
  • Liar0606
  • Liar0606
  • 2014-01-17 01:19
  • 745

Lua基础 类型和值(一)

Lua是一个动态类型的语言,没有类型定义,每个值都有自己的类型。 Lua有8个基本类型,nil, boolean, number, string, userdata, function, t...
  • wzzfeitian
  • wzzfeitian
  • 2012-12-20 05:23
  • 52902

Lua基础 类型和值(二)

5.Table Lua的table类型比较强大,用过都知道,它的index不仅可以使用number,还能使用string等其他的值,nil除外。table没有固定的size,你可以动态地向table...
  • wzzfeitian
  • wzzfeitian
  • 2013-01-06 21:33
  • 6380

Lua学习笔记 第二章 类型与值

lua是一种动态类型语言;lua中的8种基础类型是: nil, boolean, number, string, userdata, function,thread, table 函数type()...
  • wang1029
  • wang1029
  • 2014-08-22 11:25
  • 293

Lua程序设计笔记一: 基础用法/类型与值

最近公司要做游戏,就把我拉壮丁上了前线,没有办法,人手不足,要使用C++/Lua去做一些事情,项目又赶的很紧,很郁闷。。。在出来完app那边的开发工作之后,我就开始吃用cocos2d-x来做游戏了,-...
  • lihei12345
  • lihei12345
  • 2013-07-15 23:12
  • 980

Lua学习之类型,值

学习 成长 坚持每日一篇基本数据类型Lua 是动态类型语言,变量不要类型定义。Lua 中有 8 个基��类型分别为:nil、boolean、 number、string、userdata、functi...
  • u014410695
  • u014410695
  • 2015-09-17 17:31
  • 340
    个人资料
    • 访问:104915次
    • 积分:2453
    • 等级:
    • 排名:第17385名
    • 原创:137篇
    • 转载:27篇
    • 译文:0篇
    • 评论:24条
    最新评论