You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby入门疑问:如何使test方法返回true?

解决Ruby Hash扩展in方法的问题

要让test方法返回true,你只需要在Hash类的in方法里实现获取传入key对应哈希值的逻辑即可,具体修改如下:

修改in方法,接收传入的参数(也就是哈希的key),然后返回当前哈希实例中该key对应的值:

class Hash
  def in(*args)
    self[args.first]
  end
end

# cannot alter below this line
def test
  { a: 1 }.in(:a) == 1
end

puts "test: #{test}"

说明:

  • 方法定义里的*args是Ruby的可变参数语法,能接收任意数量的传入参数,这里我们只需要第一个参数(也就是调用时传入的:a)
  • self代表当前的Hash实例(也就是{a:1}),通过self[args.first]就能获取到key对应的value,这里就是1
  • 这样调用{a:1}.in(:a)时会返回1,test方法的判断结果就是true

你也可以更简洁地写这个方法(如果确定只会传入一个参数):

class Hash
  def in(key)
    self[key]
  end
end

内容的提问来源于stack exchange,提问作者James Nine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:20:32