如何在 Julia 中填充元组?

GNU*_*下教會 4 tuples fill julia

问题如标题:我想创建一个长元组,其中包含1.

mytuple = fill(1, (2018,))
Run Code Online (Sandbox Code Playgroud)

但 Julia返回一个1.

2018-element Array{Int64,1}:
1
1
...
1
Run Code Online (Sandbox Code Playgroud)

如果结果是重复的,请提前抱歉。

Gni*_*muc 5

fill用于数组,请使用tuple(ones(Int,2018)...)它,或者ntuple(x->1, 2018)如果您想使用更复杂的初始化函数。顺便说一句,您还可以使用它ntuple(x->1, Val(10))来提高代码的类型稳定性。

  • 请注意,您必须使用“Val(100)”(相当于“Val{100}()”,但 Julia 指南建议您仅使用第一种语法,而不是第二种)。`Val{100}` 是类型,`Val(100)` 是它的实例。另请注意,如果您要使用许多不同的“Val”值调用“ntuple”,则每个值编译的开销可能不值得。 (2认同)