如何将控制台输出的Ruby对象格式化为更易读的形式?
Ruby控制台对象易读格式化方案
- 标准库内置方案:
pp(Pretty Print)
无需额外安装第三方依赖,是Ruby标准库自带的格式化工具,基础效果和JS的JSON格式化能力对齐,使用方法如下:
输出会自动按嵌套层级缩进换行,比默认的# 引入库(Ruby 2.5+之后大部分环境默认已预加载) require 'pp' # 待打印的复杂对象示例 demo_obj = { id: 1001, username: "ruby_dev", role: [:admin, :developer], profile: { email: "dev@example.com", address: { province: "浙江", city: "杭州", detail: "XX园区" } } } # 执行格式化打印 pp demo_objp方法可读性高很多。如果要让IRB控制台默认用pp输出,可在用户目录下的.irbrc配置文件中添加上述require语句和默认输出配置即可。 - 第三方增强方案:
awesome_print
比内置pp功能更丰富,支持不同数据类型的语法高亮、类名标识、嵌套层级标记,适合打印自定义类实例这类复杂对象:# 先安装gem gem install awesome_print # 引入后使用 require 'ap' ap demo_obj - 类JSON格式化方案(和JS使用习惯对齐)
如果你习惯JS里的JSON格式化输出,Ruby标准库的JSON模块也提供了完全等效的能力:require 'json' # 效果等价于JS的 JSON.stringify(obj, null, 2) puts JSON.pretty_generate(demo_obj) - 轻量结构化输出:YAML格式
对于嵌套层级极深的对象,也可以用内置的YAML序列化实现易读输出:puts demo_obj.to_yaml
内容的提问来源于stack exchange,提问作者Karol Selak
相关产品推荐
相关产品推荐

