7.1 Глобальные переменные
См. ключевое слово: global
Глобальная переменная — это переменная, к которой можно получить доступ из любого места в Octave. В отличие от локальной переменной, к которой можно получить доступ вне текущего контекста, только если она передана явно, например включена в список параметров при вызове функции (fcn (local_var1, local_var2)).
Переменную объявляют глобальной с помощью оператора объявления global. Следующие операторы являются объявлениями глобальных переменных.
global a global a b global c = 2 global d = 3 e f = 5
Обратите внимание, что квалификатор global распространяется только до следующего маркера конца оператора, которым может быть запятая (‘,’), точка с запятой (‘;’) или символ новой строки (‘'\n'’). Например, следующий код объявляет одну глобальную переменную a и одну локальную переменную b, которой присваивается значение 1.
global a, b = 1
Глобальную переменную можно инициализировать только один раз в операторе global. Например, после выполнения следующего кода
global gvar = 1 global gvar = 2
значение глобальной переменной gvar равно 1, а не 2. Выполнение команды ‘clear gvar’ не меняет описанное выше поведение, а команда ‘clear all’ меняет.
Чтобы получить доступ к единственной общей переменной, необходимо объявить её глобальной в теле функции. Например,
global x function f () x = 1; endfunction f ()
не устанавливает значение глобальной переменной x равным 1. Вместо этого создаётся локальная переменная с именем x, которой присваивается значение 1. Чтобы изменить значение глобальной переменной x, её также необходимо объявить глобальной в теле функции, как показано ниже:
function f () global x; x = 1; endfunction
Передача глобальной переменной в списке параметров функции создаёт локальную копию и не изменяет глобальное значение. Например, дана функция
function f (x) x = 0 endfunction
и определение x в качестве глобальной переменной на верхнем уровне,
global x = 13
выражение
f (x)
выведет значение x внутри функции равным 0, но значение x на верхнем уровне останется неизменным, поскольку функция работает с копией аргумента.
Примечание по программированию: хотя иногда глобальные переменные могут быть подходящим решением задачи программирования, современные рекомендации не советуют их использовать. Код, зависящий от глобальных переменных, может вести себя непредсказуемо у разных пользователей, и его бывает трудно отлаживать. Это связано с тем, что глобальные переменные могут вызывать системные изменения, из-за которых становится сложно локализовать ошибку в конкретной функции или в отдельном цикле внутри функции.
-
:
tf =isglobal(name) -
Возвращает true, если name — глобально видимая переменная.
Например:
global x isglobal ("x") ⇒ 1
© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Global-Variables.html