Ruby 改进解析'*arg';价值观

Ruby 改进解析'*arg';价值观,ruby,parsing,Ruby,Parsing,我想知道是否有更好的方法(即更少的编码)来获得与以下代码相同的输出: # arg = :a, :b, :c output = args.to_a.flatten.compact.map(&:to_sym) # => [:a, :b, :c] 我使用上面的代码来解析方法以这种方式传递的参数 `method_name(:a, :b, :c)`. 我看不出有任何必要使用来压缩、展平或压缩 如果要将字符串转换为符号,只需执行.map(&:to_sym)。如果您只接受符号,则只需arg

我想知道是否有更好的方法(即更少的编码)来获得与以下代码相同的
输出

# arg = :a, :b, :c

output = args.to_a.flatten.compact.map(&:to_sym)
# => [:a, :b, :c]
我使用上面的代码来解析方法以这种方式传递的参数

`method_name(:a, :b, :c)`.

我看不出有任何必要使用
来压缩
展平
压缩

如果要将字符串转换为符号,只需执行
.map(&:to_sym)
。如果您只接受符号,则只需
args
包含您想要的内容

def method_name(*args)
   p args.map(&:to_sym)
end

method_name(:a, "b", :c)
输出

[:a, :b, :c]