当我在irb中创建一个新的数组/散列时,它会打印出一个很好的格式来显示 struct ,例如.

["value1", "value2", "value3"]
{"key1" => "value1"}

... 但当我试图用puts打印变量时,我发现它们崩溃了:

value1
value2
value3
key1
value1

我想puts不是我想要的正确命令,但什么是?我希望能够以第一种格式查看irb中的变量,而不是第二种格式.

推荐答案

您可以使用inspect方法:

a=["value1", "value2", "value3"]
puts a.inspect

或者,更好的方法是使用pp(漂亮打印)库:

require 'pp'
a=["value1", "value2", "value3"]
pp a

Ruby相关问答推荐

为什么 ruby​​ 获得证书信任链与 gnutls-cli 不同

数组切片中没有左边框的Ruby范围

如何从 DateTime 值中删除区域?

在 Ruby 中为类添加实例变量

bundler 可以告诉我 Gemfile 中的哪些 gem 有更新的版本

如何在 Sinatra 中解析 JSON 请求正文一次并将其公开给所有路由?

如何在不将换行符粘贴到字符串中的情况下使用puts添加额外的换行符?

如何拯救 Ruby 中的 eval?

为什么 Ruby 中的 `a = a` `nil`?

`expect`测试中的Rspec`eq`与`eql`

我可以在 Ruby 中使用默认值创建一个数组吗?

为什么我们要在 Ruby 的类中放置一个模块?

RSpec allow/expec vs expect/and_return

我可以使用 `else if` 而不是 `elsif` 吗?

用 Ruby 解析 XML

从 Ruby 中的 URL 获取文件名的好方法是什么?

计算文件中的行数而不将整个文件读入内存?

Ruby 异常 - 为什么是else?

判断整数是否在范围内

如何在 IRB 中重新加载脚本?