使用lua实现php的var_dump()函数功能
习惯了php中的var_dump()函数,而如今写lua的时候总习惯使用var_dump()函数,于是就自己动手写了一个类似功能的var_dump()函数。
function var_dump(data, max_level, prefix)
if type(prefix) ~= "string" then
prefix = ""
end
if type(data) ~= "table" then
print(prefix .. tostring(data))
else
print(data)
if max_level ~= 0 then
local prefix_next = prefix .. " "
print(prefix .. "{")
for k,v in pairs(data) do
io.stdout:write(prefix_next .. k .. " = ")
if type(v) ~= "table" or (type(max_level) == "number" and max_level <= 1) then
print(v)
else
if max_level == nil then
var_dump(v, nil, prefix_next)
else
var_dump(v, max_level - 1, prefix_next)
end
end
end
print(prefix .. "}")
end
end
end
相关推荐
-
Lua中实现StringBuffer功能
在Lua中,字符串是一个常量,如果用字符串连接符".."把2个字符串连接起来,例如first_str = first_str .. second_str,那么原来的first_str和second_str就会作为垃圾等待回收,first_str引用的是一个新的字符串,如果在程序里面有大量的字符串连接操作的话,性能会十分低下.Lua是一个很简洁的语言,他没有StringBuffer的实现,但是其实我们可以动手写一个简单的StringBuffer实现,来避免性能的问题. 首先定义一个叫St
-
Lua极简入门指南(六):模块
从用户的角度来看,一个模块能够通过 require 加载并返回一个 table,模块导出的接口都被定义在此 table 中(此 table 被作为一个 namespace).所有的标准库都是模块.标准库被预先加载了,就像这样: 复制代码 代码如下: math = require 'math' string = require 'string' require 函数 使用 require 函数加载模块能够避免多次重复加载模块.加载一个模块: 复制代码 代码如下: require 'modulena
-
Lua极简入门指南:全局变量
全局环境 Lua 把全局变量放在一个 table _G 中,这个 table 被叫做全局环境(global environment).打印所有的全局变量名: 复制代码 代码如下: for n in pairs(_G) do print(n) end _ENV(Lua 5.2 开始支持) 对于一个 free name(名字没有绑定任何声明)var 实际上会被转换为 _ENV.var(每个 chunk 中都会存在一个名为 _ENV 的变量): 复制代码 代码如下: v1 = 1 local v2 =
-
lua获取未来某时间点的时间戳解决方案
最近在做游戏定时推送,犹如第二天9点通知玩家领取奖励之类的需求,要求获取第二天9点的时间戳,以前用JS写过类似的需求,JS中的Date类用起来比较方便,很多东西已经帮忙弄好了,最主要的还是会自动处理时间和日期的自己进阶吧.最近写lua也碰到类似的需求,但看过lua的文档后,发现lua没有JS那么方便:但也不是没有办法,这里记录下,供以后查看,直接看代码吧 复制代码 代码如下: local cur_timestamp = os.time() local one_hour_timestamp = 2
-
获取Lua表结构(table)数据实例
只是获取一个全局变量什么的太没意思了,今天我们来玩个高难度的--获取Lua表结构的数据. (旁白:O O!我是不是该说点什么?) 上一章传送门:http://www.jb51.net/article/55093.htm 1. 什么是table table是Lua里最强大的数据类型,我们可以当成是数组,但是它又和数组有点不一样,建议大家看看Lua的语法教程,因为我对table也没有熟悉到可以给大家解释的程度. (旁白:那你还写什么教程...) 2. 获取table变量 现在,我们给helloLua
-
使用lua实现php的var_dump()函数功能
习惯了php中的var_dump()函数,而如今写lua的时候总习惯使用var_dump()函数,于是就自己动手写了一个类似功能的var_dump()函数. 复制代码 代码如下: function var_dump(data, max_level, prefix) if type(prefix) ~= "string" then prefix = "" end if type(data) ~= "tab
-
python中实现php的var_dump函数功能
最近在做python的web开发(原谅我的多变,好东西总想都学着...node.js也是),不过过程中总遇到些问题,不管是web.py还是django,开发起来确实没用php方便,毕竟存在的时间比较短,很多不完善的地方. 比如我在调试php中最常用的函数,var_dump,在python里找不到合适的替代函数.php中var_dump是一个特别有用的函数,它可以输出任何变量的值,不管你是一个对象还是一个数组,或者只是一个数.它总能用友好的方式输出,我调试的时候经常会需要看某位置的变量信息,调用它
-
Lua 数学库的所有函数功能作用一览
math.pi 为圆周率常量 = 3.14159265358979323846 abs 取绝对值 math.abs(-15) 15 acos 反余弦函数 math.acos(0.5) 1.04719755 asin 反正弦函数 math.asin(0.5) 0.52359877 atan2 x / y的反正切值 math.atan2(90.0, 45.0) 1.10714871 atan 反正切函数 math.atan(0.5) 0.463647609 ceil 不小于x的最大整数 math.c
-
使用lua实现php的print_r()函数功能
之前写了一些类似php的函数,下面再来一个print_r()函数,代码如下: 复制代码 代码如下: function pr (t, name, indent) local tableList = {} function table_r (t, name, indent, full) local id = not full and name or type(name)~="number" and tostring(name) or '['..n
-
php数组指针函数功能及用法示例
本文实例讲述了php数组指针函数功能及用法.分享给大家供大家参考,具体如下: 数组指针函数有reset(),prev(),current(),next(),end(),key(),each() 其中reset(),prev(),current(),next(),end(),都是只与数组的值有关的函数,key()只与数组键,有关的函数,each()可以获得数组的值和键 reset()函数,参数是一个数组,引用传值,将一个数组的内部指针重置到首位,也就是数组的第一个元素所在的位置,然后返回第一个元素
-
php实现excel中rank函数功能的方法
本文实例讲述了php实现excel中rank函数功能的方法.分享给大家供大家参考.具体分析如下: sql语句实现排名是像这样的如: 总分成绩为 195,180,180,161,名次分别为1,2,3,4,遇到并列的情况也是按照顺序的, 而Excel函数rank排名得到的结果是1,2,2,4,遇到并列跳过中间的3 下面的函数模拟的就是这种情况 函数如下(不知道有没有更好的实现方法): 公式为: 名次=总人数--比自己小的数的个数-这个分数重复次数+1(加上自己) 得到名次的数组再根据对应的id写入到
-
MySQL数据库开启、关闭、查看函数功能的方法
应用 MySQL 时,会遇到不能创建函数的情况.出现如下错误信息: 复制代码 代码如下: ERROR 1418 : This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators varia
-
深入php var_dump()函数的详解
php var_dump 函数作用是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.来看看var_dump 语法: 复制代码 代码如下: var_dump (var,var,bar); 下面来看看我刚才的一个实例吧. 复制代码 代码如下: <?php $ta =1; $tb ='t'; echo var_dump($ta,$tb);?> 输出为 复制代码 代码如下: int(1) string(1) "t" 第一个为数字就是int(1)
-
函数名称 函数功能
函数名称 函数功能Cbool(string) 转换为布尔值Cbyte(string) 转换为字节类型的值Ccur(string) 转换为货币类值Cdate(string) 转换为日前类型的值Cdbl(string) 转换为双精度值Cint(string) 转换为整数值Clng(string) 转换为长整型的值Csng(string) 转换为单精度的值Cstr(var) 转换为字符串值Str(var) 数值转换为字符串Val(string) 字符串转换为数值****** ************
-
原生JS写Ajax的请求函数功能
一般我们写网页的时候,如果用到 Ajax 请求服务器,都是使用 JQuery 等已经封装好的库来调用,比较简单. 但是一般这些库的功能很多,引入了太多我们用不到的东西,如果我们需要写一个功能单一,简单的页面,完全用不到引用如此庞大的库文件. 我们可以简单实现一个自己的 Ajax 请求功能,具体的代码如下: var ajax = {}; ajax.x = function () { if (typeof XMLHttpRequest !== 'undefined') { return new XM
随机推荐
- 《CSS3实战》笔记--渐变设计(二)
- 学会批处理,用心学很容易!另一不错的见解第1/3页
- jQuery中json对象的复制方式介绍(数组及对象)
- C++ 处理中文符号实例详解
- Java版坦克大战游戏源码示例
- asp.net实现文件下载的代码
- 举例详解PHP脚本的测试方法
- 低版本中Python除法运算小技巧
- JSP+Servlet制作Java Web登录功能的全流程解析
- Spring在web.xml中的配置详细介绍
- js 实现 input type="file" 文件上传示例代码
- jQuery实现Select左右复制移动内容
- Linux目录结构分解及意义和建议
- C语言 结构体数组详解及示例代码
- ES6中Generator与异步操作实例分析
- 重装windows系统备份重要数据全攻略
- Android修改jar文件包名的方法分享
- Android实现上拉加载更多以及下拉刷新功能(ListView)
- PHP文件上传之多文件上传的实现思路
- 微信小程序图片选择区域裁剪实现方法