zoukankan      html  css  js  c++  java
  • 第2章 类型和值

    Lua 是动态类型语言,变量不要类型定义。Lua 中有 8 个基本类型分别为:nil、boolean、 number、string、userdata、function、thread 和 table。函数 type 可以测试给定变量或者值 的类型。

     

    变量没有预定义的类型,每一个变量都可能包含任一种类型的值。

     

     

    注意上面最后两行,我们可以使用 function 像使用其他值一样使用。一般情况下同一变量代表不同类型的值会造成混乱,最好不要用,但是特殊 情况下可以带来便利,比如 nil。

    2.1 Nil


    Lua 中特殊的类型,他只有一个值:nil;一个全局变量没有被赋值以前默认值为 nil;

    给全局变量负 nil 可以删除该变量。 

    2.2 Booleans

     

    两个取值 false 和 true。但要注意 Lua 中所有的值都可以作为条件。在控制结构的条 件中除了 false 和 nil 为假,其他值都为真。所以 Lua 认为 0 和空串都是真。

    2.3 Numbers

     

    表示实数,Lua 中没有整数。一般有个错误的看法 CPU 运算浮点数比整数慢。事实 不是如此,用实数代替整数不会有什么误差(除非数字大于 100,000,000,000,000)。Lua 的 numbers 可以处理任何长整数不用担心误差。你也可以在编译 Lua 的时候使用长整型 或者单精度浮点型代替 numbers,在一些平台硬件不支持浮点数的情况下这个特性是非常有用的。和其他语言类似,数字常量 的小数部分和指数部分都是可选的,数字常量的例子:

     

     

    2.4 Strings

     

    指字符的序列。lua 是 8 位字节,所以字符串可以包含任何数值字符,包括嵌入的 0。 这意味着你可以存储任意的二进制数据在一个字符串里。Lua 中字符串是不可以修改的, 你可以创建一个新的变量存放你要的字符串,如下:

    string 和其他对象一样,Lua 自动进行内存分配和释放,一个 string 可以只包含一个 字母也可以包含一本书,Lua 可以高效的处理长字符串,1M 的 string 在 Lua 中是很常见 的。可以使用单引号或者双引号表示字符串

    为了风格统一,最好使用一种,除非两种引号嵌套情况。对于字符串中含有引号的 情况还可以使用转义符来表示。Lua 中的转义序列有:

    运行时,Lua 会自动在 string 和 numbers 之间自动进行类型转换,当一个字符串使 用算术操作符时,string 就会被转成数字。

    反过来,当 Lua 期望一个 string 而碰到数字时,会将数字转成 string。

    ..在Lua中是字符串连接符,当在一个数字后面写..时,必须加上空格以防止被解释错。

    尽管字符串和数字可以自动转换,但两者是不同的,像10 == "10"这样的比较永远 都是错的。如果需要显式将 string 转成数字可以使用函数 tonumber(),如果 string 不是正 确的数字该函数将返回 nil。

    反之,可以调用 tostring()将数字转成字符串,这种转换一直有效:

     

     

     

     

     

     

     

     

    如果一件事情你觉得难的完不成,你可以把它分为若干步,并不断寻找合适的方法。最后你发现你会是个超人。不要给自己找麻烦,但遇到麻烦绝不怕,更不要退缩。 电工查找电路不通点的最快方法是:分段诊断排除,快速定位。你有什么启示吗? 求知若饥,虚心若愚。 当你对一个事情掌控不足的时候,你需要做的就是“梳理”,并制定相应的规章制度,并使资源各司其职。
  • 相关阅读:
    Java文件之NIO核心组件之三选择器
    plsql备份表---只是表---不包含表数据
    根据id来大量删除数据between
    符号的问题
    excel表格中添加单引号的方法
    oracle中insert 多条数据方法
    sql developer以字段来删除大量数据
    Day 29
    Day 28
    Day 27
  • 原文地址:https://www.cnblogs.com/wvqusrtg/p/4633161.html
Copyright © 2011-2022 走看看