Ruby 如何使用方括号调用带有参数的方法?

Ruby 如何使用方括号调用带有参数的方法?,ruby,Ruby,我想在一个类中定义一个方法,当调用该方法时,它的行为类似于散列,接受带有[]的参数,而不是() 我想用这种语法来访问它:content[:benefits]而不是content(:benefits)你可以用lambdas来实现这一点 content = ->(key) { "content for #{key}" } content[:benefits] # => "content for benefits" 你可以用lambdas做这个 content = ->(key)

我想在一个类中定义一个方法,当调用该方法时,它的行为类似于散列,接受带有
[]
的参数,而不是
()


我想用这种语法来访问它:
content[:benefits]
而不是
content(:benefits)

你可以用lambdas来实现这一点

content = ->(key) { "content for #{key}" }

content[:benefits] # => "content for benefits"

你可以用lambdas做这个

content = ->(key) { "content for #{key}" }

content[:benefits] # => "content for benefits"

您可以创建一个不带参数的方法,该方法返回哈希:

def content
    {
        :beneficts => 1000
    }
end

p content[:beneficts]
> 1000

您可以创建一个不带参数的方法,该方法返回哈希:

def content
    {
        :beneficts => 1000
    }
end

p content[:beneficts]
> 1000

内容
的类中

def [] key
  ...
end

内容
的类中

def [] key
  ...
end
我想在一个类中定义一个方法,该类在被调用时的行为类似于散列

唯一的方法是该方法返回一个响应
[]
的对象。有关示例,请参见Rails中的
params
方法

我想在一个类中定义一个方法,该类在被调用时的行为类似于散列

唯一的方法是该方法返回一个响应
[]
的对象。有关示例,请参见Rails中的
params
方法