0
我想知道是否有更好的方法(即,較少的編碼)具有相同的output
如下面的代碼:提高解析「* ARG」價值
# arg = :a, :b, :c
output = args.to_a.flatten.compact.map(&:to_sym)
# => [:a, :b, :c]
我用上面的代碼解析由一個方法傳遞的參數以這種方式
`method_name(:a, :b, :c)`.
我想知道是否有更好的方法(即,較少的編碼)具有相同的output
如下面的代碼:提高解析「* ARG」價值
# arg = :a, :b, :c
output = args.to_a.flatten.compact.map(&:to_sym)
# => [:a, :b, :c]
我用上面的代碼解析由一個方法傳遞的參數以這種方式
`method_name(:a, :b, :c)`.
我看不出有任何需要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]