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

如何设置Ruby数组长度?无需手动添加10个元素实现长度为10的数组

在Ruby中设置数组长度的方法

当然可行!Ruby对数组操作的支持非常灵活,完全不用手动写10个元素就能创建或调整到指定长度的数组,下面给你几种常用的方式:

一、创建指定长度的新数组

1. 使用Array.new基础用法

这是最直接的方式,传入长度参数即可,默认每个元素是nil:

my_array = Array.new(10)
# => [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]

2. 创建带默认值的指定长度数组

如果不想用nil当默认元素,可以加第二个参数:

# 创建10个0的数组
my_array = Array.new(10, 0)
# => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

⚠️ 注意:如果默认值是可变对象(比如哈希、数组),直接传第二个参数会让所有元素指向同一个对象,修改一个会影响全部。这种情况要用块形式来创建独立的元素:

# 每个元素都是独立的空哈希
my_array = Array.new(10) { {} }
# 修改第一个元素不会影响其他
my_array[0][:key] = "value"
# => [{:key=>"value"}, {}, {}, {}, {}, {}, {}, {}, {}, {}]

3. 使用*运算符快速创建

这种方式更简洁,但同样要注意可变对象的坑:

# 10个nil的数组
my_array = [nil] * 10
# 10个空字符串的数组
my_array = [""] * 10

二、调整已有数组的长度

如果已经有一个数组,想把它的长度改成10,可以用这两种方法:

1. 直接赋值length属性

短数组会自动补nil到指定长度,长数组会截断多余的元素:

arr = [1, 2, 3]
arr.length = 10
# => [1, 2, 3, nil, nil, nil, nil, nil, nil, nil]

arr = [1,2,3,4,5,6,7,8,9,10,11]
arr.length = 10
# => [1,2,3,4,5,6,7,8,9,10]

2. 使用resize方法

效果和赋值length完全一样,写法更直观:

arr = [1,2,3]
arr.resize(10)
# => [1, 2, 3, nil, nil, nil, nil, nil, nil, nil]

根据你的需求选对应的方法就好啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:24:43