Как очистить или удалить глобальное в julia?

Есть ли какой-либо синтаксис, который делает что-то похожее на MATLAB "clear", т.е. если у меня есть глобальная переменная "a". Как я могу избавиться от него? Как сделать аналог

clear a

Ответы

Ответ 1

Начиная с версии 0.3.9, можно очистить все глобальные переменные (получить новое рабочее пространство) через функцию workspace().

Также можно получить переменные из последнего рабочего пространства, используя LastMain (например, LastMain.foobar).

Таким образом, в настоящее время единственный способ сделать то, что вы хотите, - это очистить все и передать все, кроме переменной, которую вы хотите создать в новом рабочем пространстве.

Ответ 2

См. последний ответ на этот вопрос здесь: http://docs.julialang.org/en/latest/manual/faq/#how-do-i-delete-an-object-in-memory

Получено из документов:

У Джулии нет аналога функции MATLABs clear; после названия определяется в сеансе Julia (технически, в модуле Main), это всегда присутствует.

Если использование памяти является вашей проблемой, вы всегда можете заменить объекты на которые потребляют меньше памяти. Например, если A - размер гигабайта массив, который вам больше не нужен, вы можете освободить память с помощью A = 0. память будет выпущена при следующем запуске сборщика мусора; вы может заставить это случиться с gc().

Ответ 4

В Julia 0.6 (не уверен, поддерживает ли эта версия более старая версия или нет). Вы можете удалить переменную и освободить ее память, вызвав clear!().

Вам нужно позвонить ясно! на символическом имени переменной:

julia> x = 5
5

julia> sizeof(x)
8

julia> clear!(:x)

julia> sizeof(x)
0

Как указывал DFN, это фактически не удаляет объекты, а устанавливает их на nothing. Это полезно для освобождения памяти из рабочей области, поскольку вы можете "удалить" объем памяти для непостоянных объектов.

Ответ 5

Абсолютно ясно! (: x) не работает с julia 0.6.0 в блокноте (IJulia)! Вы можете использовать x = 0 в качестве альтернативы.