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