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

如何用exclude重构Ruby函数?弃用each实现单行代码逻辑

Ruby代码重构(单行实现,无需each)

原逻辑验证:遍历types中的所有v,若存在任意一个v不在address数组内则返回false,全部存在则返回true。

原实现代码:

address = %w[one two]
result = true
types.each do |_, v|
      result = false if address.exclude?(v)
end

重构后的单行实现

address = %w[one two]
result = types.all? { |_, v| address.include?(v) }

说明

  • 使用Ruby的Enumerable#all?方法,该方法会遍历集合中的每个元素,只有当所有元素都满足块内条件时返回true,否则返回false,完全匹配需求逻辑。
  • 替换原有的exclude?为include?,直接判断v是否存在于address中,逻辑更直观简洁。

内容的提问来源于stack exchange,提问作者tunosi st

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 23:22:34