Type
の空のベクトルをJuliaで完全に初期化する式Vector{Type}()
とType[]
はありますか?いずれの構文も好まれますか?Juliaで空のベクトルを初期化する2つの等価な方法
4
A
答えて
8
はい、彼らが効果的に同じです:
julia> @code_typed Vector{Any}()
CodeInfo(:(begin
return $(Expr(:foreigncall, :(:jl_alloc_array_1d), Array{Any,1}, svec(Any, Int64), Array{Any,1}, 0, 0, 0))
end))=>Array{Any,1}
julia> @code_typed Any[]
CodeInfo(:(begin
return $(Expr(:foreigncall, :(:jl_alloc_array_1d), Array{Any,1}, svec(Any, Int64), Array{Any,1}, 0, 0, 0))
end))=>Array{Any,1}
Type[]
構文は、他のすべてのx[]
の構文のように実際にある - それはgetindex(Type)
に展開されます。 there you'll seeは、Array
コンストラクタの観点から定義されています。それは単に便利な省略形です。 私はどちらか一方を好むスタイルガイドについて知らない。
+0
現在、 'T []'の使用には少なくとも1つの問題があることに注意してください:https://discourse.julialang.org/t/performance-issue-with-use-of-eltype/5764とhttps:// github .com/JuliaLang/julia/issues/23618を参照してください。 – sbromberger
+0
これは配列の解説にのみ関連しています。空のベクトルの初期化ではありません。 –
関連する問題
- 1. 空のベクトルの配列を初期化
- 2. 2つの引数を持つSTLベクトルの初期化
- 3. 空ポインタを初期化する方法
- 4. クラスのコンストラクタでベクトルを初期化する方法
- 5. 構造体のベクトルをC++で初期化する方法
- 6. 複数の空のベクトルを一度に初期化する
- 7. は、構造体に空のベクトルを初期化する - C++
- 8. ポインタのベクトルを初期化する方法
- 9. オブジェクトのベクトルの初期化
- 10. ペア初期化ベクトル
- 11. ベクトル化された等価性テスト
- 12. 理解ベクトルの初期化
- 13. イテレータでベクトルを初期化するC++
- 14. Kotlin:ベクトルの初期化を遅延させる方法
- 15. 名前空間におけるC++標準ベクトルの初期化
- 16. 2Dベクトルの初期化:初期設定の奇妙な長さ
- 17. 1つのパースペクティブで2つの等価ビューを作成する方法
- 18. 配列からベクトルを初期化する方法C++
- 19. ペアの初期化のC++ベクトル初期化 - コンパイルエラー
- 20. C++:コンストラクタでのベクトルの初期化
- 21. C++での2Dベクトルの初期化
- 22. C++でのベクトルの初期化
- 23. 空のヒントデータベースを初期化する方法
- 24. 空リストの初期化を禁止する方法は?
- 25. 暗号化初期化ベクトルの転送
- 26. 角2のhttp.getコールバックデータでflexsliderを初期化する方法
- 27. C++で空の文字列を初期化するプロフェッショナルな方法
- 28. 異なる/未知の種類のクラステンプレートを持つベクトルを初期化する
- 29. 初期化リストを介してコンストラクタ内のクラスメンバー(ベクトル)を初期化する
- 30. Juliaで辞書を初期化するには?
私は後者がより現場で定義されていると言いますが、前者はプログラム的です。この例は同じですが、 'Vector {Int64}(a)'の場合を考えてみましょう: 'a = 0'の場合は空ベクトルですが、それ以外の場合はガベージ値で初期化されたベクトルです。 –