什么`#{* .inspection}`是什么意思?

时间:2012-12-04 09:48:45

标签: ruby

我对puts #{parse_options.inspect}有疑问。 parse_options是一个定义为:

的函数
def parse_options
  options = {}
  case ARGV[1]
  when "-e"
    options[:e] = ARGV[2]
  when "-d"
    options[:d] = ARGV[2]
  end
  options
end

其输出是options hashmap的值。我想知道的是inspect应该如何运作。

2 个答案:

答案 0 :(得分:5)

"#{ expression }"expression substitution:在字符串中放置评估表达式的结果。 parse_options是一个方法调用,它返回options hash(返回在Ruby中是隐式的)。 {}构造一个空哈希。 inspecthash上的一个方法,它会转储哈希值。

所以它如下所示:在字符串中放置对inspect返回的哈希调用parse_options的评估(好吧,它应该是发送 {的结果{1}}哈希,详细信息......)。

答案 1 :(得分:1)

Inspect将哈希值作为字符串返回 请参阅文档:http://ruby-doc.org/core-1.9.3/Hash.html#method-i-inspect