定義されていない(または偽の)変数に割り当てるための簡単なJulia構文はありますか?私はRubyのx ||= NEW_VALUE
のようなものを意味します。私はx || x=NEW_VALUE
を試しましたが、エラーが発生します。簡単な構文を除いて、変数が定義されているかどうかを確認するためにどのような関数を使用できますか?Juliaにまだ定義されていない場合にのみ割り当てます
13
A
答えて
24
isdefined
の機能は、isdefined(:x) || (x = NEW_VALUE)
です。
2
私は少しの不便さに対処するためのマクロを用意しました。 REPLに続い
macro ifund(exp)
local e = :($exp)
isdefined(e.args[1]) ? :($(e.args[1])) : :($(esc(exp)))
end
:
julia> z
ERROR: UndefVarError: z not defined
julia> @ifund z=1
1
julia> z
1
julia> z=10
10
julia> @ifund z=2
10
julia> z
10
補間の例:
julia> w
ERROR: UndefVarError: w not defined
julia> w = "$(@ifund w="start:") end"
"start: end"
julia> w
"start: end"
しかし、範囲を覚え(y
は、の範囲にあるforループ):
julia> y
ERROR: UndefVarError: y not defined
julia> for i=1:10 y = "$(@ifund y="") $i" end
julia> y
ERROR: UndefVarError: y not defined
私はそれが動作するかどうか知っている。私はマクロで私の最初の練習なので、私は興味があります。
関連する問題
- 1. 割り当てられていない場合、intとcharの固定割り当てはありますか?
- 2. セグメントがまだ定義されていない場合のみIndexRedirect?
- 3. 繰り返し割り当てがget_timeに定義されていますか?
- 4. 値がまだ設定されていない場合にのみ、値を設定してください
- 5. 変数を割り当てるときに定義されていないオフセット
- 6. メモリがクラスに割り当てられている場合
- 7. Maven 2:ローカルリポジトリにまだインストールされていない場合にのみビルドアーティファクト
- 8. 変数に割り当てるデフォルト値を一が設定されていない場合は、bashの
- 9. Python-定義中に変数が割り当てられていないコード
- 10. 戻り値の型がない場合、コンストラクタはオブジェクトに割り当てられていますか?
- 11. 変数が定義されていない場合もあります。
- 12. ArrayListは、直接割り当てられていない場合にのみシリアル化された後で空になります
- 13. ユーザーが割り当てられていない場合、ルートアイテムへのアクセスがブロックされます
- 14. 既に割り当てられていない限り、R変数にデフォルト値を割り当てますか?
- 15. 不可能:定義されていない場合にのみ変数を設定します。
- 16. SelectSingleNode.valueが見つからない場合にstring.emptyを割り当てます
- 17. ショートダンプ:フィールドシンボルがまだ割り当てられていません
- 18. 動的割り当てがtrueに設定されている場合、手動でコア数を割り当てます。
- 19. PHPオブジェクト指向:オブジェクト定義で宣言されていなくてもプロパティが割り当てられます
- 20. 既に新しい変数名が割り当てられている場合、どのように新しい変数名を割り当てますか? Ruby
- 21. Julia:配列の割り当て動作
- 22. Juliaで定義されていないプロット
- 23. TypeScript定義のクラスにBreeze.Entityを割り当てます。
- 24. rootViewControllerに割り当てられている場合、マスタービューコントローラはnavスタックにプッシュされませんか?
- 25. まだ設定されていない場合は、webstconfigにconnectionstringを追加してください。
- 26. qsubでSGEにまだ割り当てられていないメモリを要求しています
- 27. プロパティがフォールバックに割り当てられ、デフォルトが指定されていない場合はどうなりますか?
- 28. DataFrameに指定された値が割り当てられていません
- 29. _DEBUGが定義されている場合、NDEBUGを定義しないでください。
- 30. Jqueryがまだ表示されていない場合のみスライドする