我想知道是否有更好的方法(即编码更少)与下面的代码具有相同的output
:
# arg = :a, :b, :c
output = args.to_a.flatten.compact.map(&:to_sym)
# => [:a, :b, :c]
我使用上面的代码以这种方式解析方法传递的参数
`method_name(:a, :b, :c)`.
答案 0 :(得分:2)
我认为不需要to_a
,flatten
或compact
。
如果要将字符串转换为符号,则可以执行.map(&:to_sym)
。如果您只接受符号,则只需args
包含您想要的内容。
def method_name(*args)
p args.map(&:to_sym)
end
method_name(:a, "b", :c)
输出
[:a, :b, :c]