我有以下代码行:
f((k,v)) = Symbol(k) => Symbol(v)
Dict(Iterators.map(f, pairs(names)))
我想把它写成一行。我试过了:
Dict(Iterators.map((k,v) -> Symbol(k) => Symbol(v), pairs(names)))
但是它抛出方法错误:
MethodError: no method matching (::var"#13#14")(::Pair{Symbol, String})
可以用一行写吗?
Dict(Symbol(k)=>Symbol(v) for (k, v) in pairs(names))
?
你想要这个:
Dict(Iterators.map(((k,v),) -> Symbol(k) => Symbol(v), pairs(names)))
(注意(k,v)
后面的逗号强制将匿名函数的第一个参数分解为两个元素)