openresty中lua的数据类型及案例演示

匿名 (未验证) 提交于 2019-12-02 23:40:02
版权声明:原创文章,未经允许不得转载. https://blog.csdn.net/shengqianfeng/article/details/91458482

openresty输出helloworld的两种方式

  • 进入luajit目录,查看luajit版本 信息:

  • 使用luajit执行lua脚本,我们编写一个hello.lua,输出hello world!

 ./luajit -v
  • 使用resty命令来执行打印hello world,因为resty最终也是调用luajit的。

 /usr/local/openresty-1.11.2.5/bin/resty -e 'print("hello world")'

openresty打印Lua的数据类型

 

输出:string

 /usr/local/openresty-1.11.2.5/bin/resty -e 'print(type(print))'

输出:function

 /usr/local/openresty-1.11.2.5/bin/resty -e 'print(type(true))'

输出:boolean

  /usr/local/openresty-1.11.2.5/bin/resty -e 'print(type(0.1))'

输出:number

 

输出:table

 

输出:nil

数据类型案例

字符串拼接

 /usr/local/openresty-1.11.2.5/bin/resty -e 'local s = "" for i = 1, 10 do s=s..tostring(i) end print(s)'

结果:12345678910

在lua中表达字符串有三种方式:单引号、双引号、长括号[[]],接着演示下长括号的使用例子。

  /usr/local/openresty-1.11.2.5/bin/resty -e 'print([[string has \r and \n]])'

结果:string has \r and \n

说明在lua中使用长括号表示的字符串不会做任何的转移处理!

那如果长括号字符串中又含有长括号呢?

 /usr/local/openresty-1.11.2.5/bin/resty -e 'print([=[string has [[]] over  ]=])'

结果:string has [[]] over

区别就是[=[ 和]=].

布尔值演示

判断0和“”是true还是false。

 /usr/local/openresty-1.11.2.5/bin/resty -e 'local a=0 if a then print('true') end a="" if a then print("true") end'

输出:true true

解释:其实在lua中,只有nil和false为假,0和空串都是真。

数值演示

 /usr/local/openresty-1.11.2.5/bin/resty -e 'print(9223372036854775807LL - 1)'

结果:9223372036854775806LL

Lua 的 number 类型,是用双精度浮点数来实现的。luaJit支持双数模式,即可以根据上下文,使用整型来存放整数,使用双精度浮点数来存放浮点数。上边例子是长整数的演示。

table演示

  /usr/local/openresty-1.11.2.5/bin/resty -e 'local color={first="red"} print(color["first"])'

结果:red

nil类型

 /usr/local/openresty-1.11.2.5/bin/resty -e 'local a print(type(a))'

结果:nil

常用标准库

string标准库

在 OpenResty 的环境中,Lua 标准库的优先级是很低的,优先级顺序:

OpenResty的API > LuaJIT的库函数 > 标准lua的函数

以上例子中,表示的是使用lua函数string.bytes,返回字符串 指定下标的ascii码值,结果如图所示。

math库

使用lua的math库生成随机 字符串。

虚变量

也就是使用下划线_,去代替那些不希望接收的返回值。

文章来源: https://blog.csdn.net/shengqianfeng/article/details/91458482
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!