Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.1.0 - Русский


isglobal

проверяет имеет ли локальная переменная глобальную копию

Синтаксис

t = isglobal(varname)

Аргументы

varname

текст: имя любой отдельной локальной переменной. Это не переменная сама по себе (это предоставляет своё содержимое), а её имя.

t

логическое значение

Описание

isglobal("x") возвращает %T, если переменная x определена локально и указывает на глобальную копию. В противном случае она возвращает %F.

  • Если x определена в глобальном пространстве, но не в локальном, то isglobal("x") вернёт %F (как isdef("x")).
  • Если varname является текстом, не соответствующим имени какой-либо переменной, то ошибки не возникает и возвращается %F.
Список всех переменных, определённых в глобальном пространстве (не не обязательно в локальном) может быть получен с помощью who("global").

Примеры

Пример №1 с предопределённой глобальной переменной:

mprintf("%s\n", who("global")) // demolist содержит глобальную переменную...
isdef("demolist")       // %F: ... но нет локальной переменной (пока)
demolist(1)             // => "Переменная не определена"
isglobal("demolist")    // => %F, поскольку в нём нет локальных определений
global demolist         // Мы определяем локальный demolist и заставляем его указывать на
                        //  существующую глобальную переменную
demolist($,:)           // Здесь последняя строка содержимого существующей глобальной переменной
isglobal("demolist")    // => теперь %T
--> mprintf("%s\n", who("global")) // demolist содержит глобальную переменную...
%helps
%modalWarning
%toolboxes
%toolboxes_dir
demolist

--> isdef("demolist")       // %F: ... но нет локальной переменной (пока)
 ans  =
  F

--> demolist(1)             // => "Переменная не определена"
Неопределённая переменная: demolist

--> isglobal("demolist")    // => %F, поскольку в нём нет локальных определений
 ans  =
  F

--> global demolist   // Мы определяем локальный demolist и заставляем его указывать на
                      //  существующую глобальную переменную
--> demolist($,:)     // Здесь последняя строка содержимого существующей глобальной переменной
 ans  =
!Xcos  SCI\modules\xcos\demos\xcos.dem.gateway.sce  !

--> isglobal("demolist")    // => теперь %T
 ans  =
  T

Пример №2 с пользовательской переменной:

// В списке ниже "abc" не существует. Давайте создадим её локально и глобально:
global abc              // инициализируется как []
isdef("abc")            // => %T
isglobal("abc")         // => %T
abc = %pi;              // Записывает одновременно в локальном И глобальном пространствах
clear abc               // Удаляем локальное определение, но не глобальное
abc                     // => "неопределённая переменная"
isglobal("abc")         // => %F, поскольку больше нет локальных псевдонимов
global abc              // переопределим abc, связанную с её глобальной копией. Что это?
abc
--> // В списке ниже "abc" не существует. Давайте создадим её локально и глобально:
--> global abc              // инициализируется как []
--> isdef("abc")            // => %T
 ans  =
  T

--> isglobal("abc")         // => %T
 ans  =
  T

--> abc = %pi;              // Записывает одновременно в локальном И глобальном пространствах
--> clear abc               // Удаляем локальное определение, но не глобальное
--> abc                     // => "неопределённая переменная"
Неопределённая переменная: abc

--> isglobal("abc")         // => %F, поскольку больше нет локальных псевдонимов
 ans  =
  F

--> global abc              // переопределим abc, связанную с её глобальной копией. Что это?
--> abc
 abc  =
   3.1415927

Смотрите также

  • global — определение глобальной переменной
  • clearglobal — уничтожает глобальные переменные
  • who — список переменных
  • isdef — проверяет существование переменной
Report an issue
<< isdef Переменные имена >>

Copyright (c) 2022-2023 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon May 22 12:41:11 CEST 2023