2017-01-11 8 views
3

この質問は他の言語にも適用されることがあります。私は、変数名として組み込み関数名を使用する場合Juliaで上書きされた組み込み関数を復元する方法

は、 私が実行して機能を回復することができます

all = 123 
all = Base.all 

をしかし、私は定義した場合、例えば、カスタム関数sum()、その後、私は

sum = Base.sum 

は私が

が、私はそれを上に書いた場合は、組み込みの機能を回復させる方法はあります「定数和の無効な再定義を」というエラーを得ました、か?それとも設計上不可能なのでしょうか?

+0

これは正しい方法ですが、あなたは、関数であれば変数を再定義することはできません。そうではありません。私はあなたがそれを行うことはできないと思います。 –

答えて

2

この例では、あなただけのBase.sumとしてsumを再定義することができます:

sum(x) = Base.sum(x)

はあなたが好きだろうかということですか?

NB。あなたの合計の定義を上書きすることはできません。型パラメータを使用する場合は(例:sum(x::Vector))、一般的にはsum(x)に優先して送信される可能性があります。その場合、上記の特定のメソッドについて上記を繰り返す必要があります。

1

REPLで作業しているときにこれが問題になる場合は、workspace()をリセットしてMainをリセットしてください。

+0

ありがとう!これは私が求めているものではありませんが、 Juliaとデフォルトの名前空間を混乱させようとしているだけです。 –

+0

コードセクションの定義を本当に上書きする必要がある場合は、そのコードをモジュールに入れて、そのモジュールのコードとあなたは関数の通常の定義を見るでしょうか? –

関連する問題