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

Ruby数组初始化默认值及空数组遍历的最简洁实现方法

Ruby数组相关问题解答

1. 初始化至少包含一个默认值的最简洁方式

最直接简洁的方式是使用数组字面量直接定义:

default_array = ["foo"]

如果需要生成多个相同默认值的数组(比如3个"foo"),可以用:

Array.new(3, "foo") # => ["foo", "foo", "foo"]

注意:如果默认值是哈希、数组这类引用类型,Array.new(n, obj)会让所有元素指向同一个对象,此时建议用块形式避免引用共享:

Array.new(3) { {"key" => "value"} } # 每个哈希都是独立对象

2. 一行代码实现“空数组补默认值后遍历”

分两种场景处理:

场景1:不修改原数组,仅临时使用默认值遍历

用presence方法(返回自身除非为空/ nil)配合逻辑或||生成临时数组,再链式调用遍历:

(object.initial_array.presence || ["foo"]).each do |item|
  # 这里写你的元素处理逻辑
end

场景2:修改原数组(为空时添加默认值)后遍历

用tap方法在原数组上执行补值操作,再直接链式遍历:

object.initial_array.tap { |arr| arr << "foo" if arr.empty? }.each do |item|
  # 这里写你的元素处理逻辑
end

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:48:23