Ruby 直接将splat转换为set

Ruby 直接将splat转换为set,ruby,Ruby,我使用下面的代码从一个范围生成一个集合: my_set = *(1..10).to_set # => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 正如你所看到的,我得到的不是一个集合,而是一个数组 如果我将语句分为两行,则该语句有效: my_set = *(1..10) my_set = my_set.to_set # => #<Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}> my_set=*(1..10) my_s

我使用下面的代码从一个范围生成一个
集合

my_set = *(1..10).to_set
 # => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
正如你所看到的,我得到的不是一个集合,而是一个数组

如果我将语句分为两行,则该语句有效:

my_set = *(1..10)
my_set = my_set.to_set
 # => #<Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}>
my_set=*(1..10)
my_set=my_set.to_set
# => #

如何使其在一行中按预期工作?

集。新的
也适用于以下范围:

Set.new(1..10)
 => #<Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}>

请注意,如果要显示范围,应使用赋值。

您已经有了一个集合。将其展开(
*
)可以获得数组。只是不要炫耀:

my_set = (1..10).to_set # => #<Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}>
my_set=(1..10).to_set=>#

注意:使用
要求“设置”
使设置生效
my_set = (1..10).to_set # => #<Set: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}>