# exists

проверяет существование переменной

## Последовательность вызова

    ve = exists(name [,where])

## Аргументы

ve

  результат с возможными значениями: `1`, если "истина";

  `0`, если "ложь";

name

  символьная строка

where

  необязательный символ с возможными значениями `'l'` (локальный), `'n'` (нелокальный) и `'a'` (все). Значение по умолчанию `'a'`.

## Описание

`exists(name)` возвращает `1`, если переменная с именем `name` существует, в противном случае -- `0`.

Предостережение: функция, которая использует `exists` может вернуть результат, зависящий от окружения!

`exists(name,'l')` возвращает `1`, если переменная с именем `name` существует в окружении текущей функции, в противном случае -- `0`.

`exists(name,'nolocal')` возвращает `1`, если переменная с именем `name` существует на любом уровне вызывающего окружения (включая главный уровень командной строки Scilab'а) текущей функции, в противном случае -- `0`.

Внимание: функция `exists` не проверяет существование переменной в пространстве имён глобальных переменных (global).

## Примеры

    exists("myNotLikelyToExistVariable")
    myNotLikelyToExistVariable = 1;
    exists("myNotLikelyToExistVariable")

    deff('foo(x)',..
    ['disp([exists(''a12''),exists(''a12'',''local'')])'
     'disp([exists(''x''),exists(''x'',''local'')])'])
    foo(1)
    a12=[];foo(1)

    function level1()
      function level2()
        disp(exists("a","a"));
        disp(exists("a","l"));
        disp(exists("a","n"));
      endfunction
      level2()
    endfunction
    function go()
      a=1;
      level1()
    endfunction
    go()

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

- isdef
- isglobal
- whereis
- type
- typeof
- macrovar