When set context unique to this notebook:
ClearAll @@ { $Context<>"*" }
Clear["`*"]
can both clear the variables I assigned. I just wonder what's the difference between them? Are they interchangeable?
When set context unique to this notebook:
ClearAll @@ { $Context<>"*" }
Clear["`*"]
can both clear the variables I assigned. I just wonder what's the difference between them? Are they interchangeable?
Clear vs. ClearAllIs answered here: Good clearing practices
$Context<>"*" vs. "`*":99% of the time it is the same thing.
See tutorial/Contexts: "`name a symbol in the current context"
See also ref / ClearAll / Examples / Applications / 2nd example
So how can it be different? If it is defined and evaluated in a different context than the context of the moment of using it. Here is an example:
BeginPackage["MyContext`"]
ClearMe[] := ClearAll @ clearSpec1;
clearSpec1 = $Context <> "*";
clearSpec2 = "`*";
EndPackage[]
Now, if you call ClearMe[] it will correctly clear MyContext`* even though the current context is probably Global`. Had clearSpec2 been used you would clear Global`.
Ok, pretty artificial example but you get the point.
ClearAlland the other usesClear. Fixing that, can you give an example where one of these inputs gives a different result than the other? – Jason B. Jan 17 '19 at 01:46ClearvsClearAllor$Context<>"*"vs"`*"? – Kuba Jan 17 '19 at 09:51