zoukankan      html  css  js  c++  java
  • LUA字符串——(入门)

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

    1 a = "a line"
    2 b = 'another line'

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

     1 \a bell
     2 \b back space -- 后退
     3 \f form feed -- 换页
     4 \n newline -- 换行
     5 \r carriage return -- 回车
     6 \t horizontal tab -- 制表
     7 \v vertical tab
     8 \\ backslash -- "\"
     9 \" double quote -- 双引号
    10 \' single quote -- 单引号
    11 \[ left square bracket -- 左中括号
    12 \] right square bracket -- 右中括号

    例子:

    > print("one line\nnext line\n\"in quotes\", 'in quotes'")
    one line
    next line
    "in quotes", 'in quotes'
    > print('a backslash inside quotes: \'\\\'')
    a backslash inside quotes: '\'
    > print("a simpler way: '\\'")
    a simpler way: '\'

    还可以使用[[...]]表示字符串。这种形式的字符串可以包含多行也,可以嵌套且不会解释转义序列,如果第一个字符是换行符会被自动忽略掉。这种形式的字符串用来包含一段代码是非常方便的。

    page = [[
    <HTML>
    <HEAD>
    <TITLE>An HTML Page</TITLE>
    </HEAD>
    <BODY>
    Lua
    [[a text between double brackets]]
    </BODY>
    </HTML>
    ]]
    io.write(page)

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

    1 print("10" + 1) --> 11
    2 print("10 + 1") --> 10 + 1
    3 print("-5.3e - 10" * "2") --> -1.06e-09
    4 print("hello" + 1) -- ERROR (cannot convert "hello")
    5 print(10 .. 20) --> 1020

    ..在Lua中是字符串连接符,当在一个数字后面写..时,必须加上空格以防止被解释错。
    尽管字符串和数字可以自动转换,但两者是不同的,像10 == "10"这样的比较永远都是错的。如果需要显式将string转成数字可以使用函数tonumber(),如果string不是正确的数字该函数将返回nil。

    line = io.read() -- read a line
    n = tonumber(line) -- try to convert it to a number
    if n == nil then
    error(line .. " is not a valid number")
    else
    print(n*2)
    end

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

    print(tostring(10) == "10") --> true
    print(10 .. "" == "10") --> true
  • 相关阅读:
    git
    ComfortColor.xcs
    使用Jackson时转换JSON时,日期格式设置
    json和jsonp
    powerdesigner 将表中name列值复制到comment列 (保留原有comment)
    下滑线驼峰互转
    Tomcat
    git stash
    gitignore
    例题:大图轮播
  • 原文地址:https://www.cnblogs.com/liqiu/p/3106116.html
Copyright © 2011-2022 走看看