在自身内部引用哈希项



我有一个很短的问题。是否可以这样初始化哈希:

row = {
    :title => "row title",
    :slug => row[:title].paremeterize
}

换句话说,我是否可以在自身内部引用一个初始化的哈希值或者我必须这样做:

row = {
    :title => "row title"
}
row[:slug] = row[:title].paremeterize

谢谢你的评论。当然,这段代码不能工作。我问是否有类似的方法,也许是不同的语法。Ruby对我来说充满了惊喜:)

你做这件事的方式相当奇怪。当您试图以很少有文档记录(或不可能)的方式使用该语言时,请考虑一下您正在做什么。

title = "foobar"
row = {
  :title => title,
  :slug => title.parameterize
}

更好……

class Row
  attr_accessor :title
  def slug; title.parameterize; end
end
foo = Row.new :title => 'foo bar'
foo.slug    #=> "foo-bar"

如果在IRB中运行以下代码,

row = {
    :title => "row title",
    :slug => row[:title]
}

得到错误NoMethodError: undefined method '[]' for nil:NilClass。所以不,你不能这样做,因为row在那时还没有完全初始化并且是nil对象。

相关内容

  • 没有找到相关文章

最新更新