Lua基本类型

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值