Kir*_*nap 1 iteration tuples julia
我想迭代一个元组中的三元组,发现Julia中的一个奇怪的逗号细节是我们应该期待的吗?
julia> for (k, n, d) in (("x1", "x2", "x3"),); @show k, n, d; end;
(k, n, d) = ("x1", "x2", "x3")
# However if I remove , it doesn't work
julia> for (k, n, d) in (("x1", "x2", "x3")); @show k, n, d; end;
ERROR: BoundsError
Stacktrace:
[1] indexed_next(::String, ::Int64, ::Int64) at ./tuple.jl:56
[2] anonymous at ./<missing>:?
Run Code Online (Sandbox Code Playgroud)
是的,这表现得像预期的那样.仅括号不会创建元组.如果他们这样做,那么简单的基本数学表达式2*(3+4)就行不通.不带逗号或分号的括号用于优先级分组或函数调用.这就是为什么你需要在一元组案例中使用明确的尾随逗号.
((x,y,z))是一样的(x,y,z).
((x,y,z),)构造一个包含的元组(x,y,z).
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |