14

タプルの空の配列を初期化する方法がわかりません。マニュアルには次のように書かれています。

値のタプルの型は、値の型のタプルです... したがって、型のタプルは、型が期待される場所ならどこでも使用できます。

しかし、これは機能しません:

myarray = (Int64,Int64)[]

しかし、これは:

Int64[]

空の角括弧の前に型が期待されているように見えますが、タプル型は機能しません。この<type>[]構文は、空の型付き配列を取得する唯一の方法です (他の方法では多数の#undef値が生成されるようです)。それを行う唯一の方法はありますか?もしそうなら、タプルで配列を入力するにはどうすればよいですか?

ところで、私のユースケースは、最初は不定の長さの配列を作成し、タプルをループでプッシュしています。

4

2 に答える 2

12

最新のソリューションをお探しの方は、

Tuple{Int, Int}[]v0.4で動作

また、詳細な方法Array{Tuple{Int, Int}}(0)はv0.4でも機能します。

それは0-element Array{Tuple{Int64,Int64},1}

v1.0 では、次のように記述する必要があることに注意してください。

Array{Tuple{Int, Int}}(undef, 0)

于 2015-10-21T23:18:31.617 に答える
11

あなたはArray((Int,Int),0)これを行うことができます。getindexメソッドを追加して機能させることはおそらく実行可能(Int,Int)[]ですが、それだけの価値があるかどうかはわかりません。お気軽に問題を開いてください。

于 2013-10-17T06:25:27.603 に答える