博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lua基本类型
阅读量:6149 次
发布时间:2019-06-21

本文共 1456 字,大约阅读时间需要 4 分钟。

hot3.png

lua有8中基本类型,string(字符串),number(数字),nil(空),userdata(自定义类型),table(表),boolean(布尔),thread(线程),function(函数)。

lua的注释

        单行注释:--被注释的内容;

        多行注释:--[["被注释的内容"]];

重点讲解

string

        lua的字符串是一个不可变的值,不能像C语言中去改变一个字符串的值,比如修改某个字符值。而是应该根据修改要求来创建一个新的字符串。例如 a = “a string”,b=string.gsub(a,"a","another"),b = "another string"。lua的字符串是自动内存管理机制所管理的对象,使用者无须担心内存分配和释放。lua中也存在转义字符\。

        还可以用一对匹配的双方括号来界定一个字符串,这种形式的字符串可以延伸多行,lua不会解释其中的转义字符。此外,如果第一个字符是换行字符,那么lua会忽略它。例如:

str = [[

<html>

<head>

<title>My Story</title>

</head>

<body>

    <a href="www.baidu.com">learning lua makes me happy!</a>

</body>

</html>

]]

        lua还提供了运行时数字和字符串的自动转换。例如:

            183325_OObs_3094827.png分别输出11,10 + 1,20。

        lua中..是起到连接字符串的作用。例如print(10 .. 20)  输出1020

        将数字字符串转化为数字,可以用tonumber,如果字符串不是数字字符串,那么tonumber会返回nil

        将数字转换为字符串,可以用tostring。

        获取字符串长度,可以用#,例如print(#"host"),则会输出4。

 

number

        number用于表示实数,lua没有整数类型。

 

nil

        nil是一种类型,它只有一个值nil。它的主要功能是用于区别其他的值。nil表示一个无用的值,不可使用,这一点上,有点像C/C++中的NULL。

 

table

        table表示关联数组,是一种具有特殊索引方式的数组。它的索引可以是正数、字符串和其他类型的值,此外,table并没有固定的大小,它可以动态添加任意数量的元素。操作方式让我联想到了STL中的vector。可以将table想象成一个动态分配的对象,程序仅拥有一个对它们的引用,lua不会暗自产生table的副本或者新的table对象。table的创建是通过结果表达式{}完成的。

        访问value是table有两种形式,一种是通过索引下标,另外一种是.调用。例如:

        a = {}

        x = "y"

        a[x] = 10

        print(a[x]),输出为10。此处要注意print(a.x)与print(a.y)的区别,print(a.x)相当于print(a["x"])。

        print(a.y),输出也为10。print(a,y)相当于print(a["y"])。       

 

boolean

           boolean类型有两个值,true和false。在lua中,把false和nil视为假,其他的视为真。就算是0和空字符也是真。

 

function 

            lua既可以调用自身lua编写的函数,也可以调用C编写的函数。lua所有的标准库都是用C语言写的。

        

        Lua中的索引值一般从1起。

转载于:https://my.oschina.net/andyzzh1314/blog/1499823

你可能感兴趣的文章
Strlcpy和strlcat——一致的、安全的字符串拷贝和串接函数【转】
查看>>
Reids配置文件redis.conf中文详解
查看>>
【原】Github系列之一:一起做仿天气类应用中的实时模糊效果LiveBlur
查看>>
eclipse plugin development -menu
查看>>
cnblog 的小问题 - 尽在 null 中
查看>>
再思linux内核在中断路径内不能睡眠/调度的原因(2010)【转】
查看>>
Windows Phone 7 学习笔记1:Hello, Windows Phone 7
查看>>
zoom.js 使用事例
查看>>
swfupload 上传SecurityError Error #2156
查看>>
SET XACT_ABORT { ON | OFF }SQL Server 是否自动回滚到当前事务
查看>>
C#反射实用技术笔记
查看>>
Workflow笔记3——BookMark和持久化
查看>>
SPI协议及其工作原理浅析【转】
查看>>
iOS:转载:IOS谓词--NSPredicate
查看>>
linux kernel的中断子系统之(三):IRQ number和中断描述符【转】
查看>>
PLSQL中select for update cursor
查看>>
Nginx+Php-fpm+MySQL+Redis源代码编译安装指南
查看>>
OpenCV&Qt学习之二——QImage的进一步认识
查看>>
自制简单表单验证relative与absolute定位
查看>>
configure: error: GMP version &gt;= 4.3.2 required
查看>>