Spec-Zone.ru › Octave 9

Следующая: Парсер, Выше: Грамматика и парсер [Оглавление][Индекс]

F.1 Ключевые слова ¶

Ниже перечислены ключевые слова, которые нельзя использовать в качестве имён переменных или функций:

Категории: ¶

Вспомогательные функции | Объявление переменных | Определение функций | Управляющие структуры | Структуры итерации | Структуры classdef | Выполняющая среда

Алфавитный список ключевых слов: ¶

__FILE__ | __LINE__ | break | case | catch | classdef | continue | do | else | elseif | end | end_try_catch | end_unwind_protect | endclassdef | endenumeration | endevents | endfor | endfunction | endif | endmethods | endparfor | endproperties | endswitch | endwhile | endenumeration | events | for | function | global | if | methods | otherwise | parfor | persistent | properties | return | switch | try | until | unwind_protect | unwind_protect_cleanup | while

Вспомогательные функции: ¶

Функция iskeyword может быть использована для быстрого проверки, является ли идентификатор зарезервированным в Octave.

: iskeyword () ¶
: iskeyword (name) ¶

Возвращает true, если name является ключевым словом Octave.

Если name опущено, возвращает список ключевых слов.

См. также: isvarname, exist.

Объявление переменных: ¶

: global var ¶

Объявляет переменные со глобальным доступом.

global x;
if (isempty (x))
  x = 1;
endif

См. также: persistent.

: persistent var ¶

Объявляет переменные как постоянные.

Переменная, объявленная persistent внутри функции, сохранит своё содержимое в памяти между последующими вызовами той же функции. Разница между переменными persistent и global заключается в том, что переменные persistent локальны для конкретной функции и не видны в других местах.

См. также: global.

Определение функций: ¶

: function outputs = function_name (input, …) ¶
: function function_name (input, …) ¶
: function outputs = function_name ¶

Начало тела функции с именем function_name, с outputs как результатами и с inputs как параметрами.

Функцию можно вызвать в Octave с использованием синтаксиса

[output1, output2, ...] = function_name (input1, input2, ...)

См. также: return.

: endfunction ¶

Помечает конец функции.

См. также: function.

: end ¶

Последний элемент массива или конец любого for, parfor, if, do, while, function, switch, try, или unwind_protect блока.

В качестве индекса массива магический индекс "end" относится к последнему допустимому элементу в операции индексирования.

Пример:

x = [ 1 2 3; 4 5 6 ];
x(1,end)
 ⇒ 3
x(end,1)
 ⇒ 4
x(end,end)
 ⇒ 6

Примечания к программированию:

  1. Ключевое слово end не может быть использовано внутри subsref, subsasgn, или substruct для ручных операций индексирования.
  2. Для пользовательских классов, чтобы включить использование end в выражениях индексирования, его необходимо перегрузить с определением функции, например:
    function last_index = end (obj, end_dim, ndim_obj)
      if (end_dim == ndim_obj)
        last_index = prod (size (obj)(end_dim:ndim_obj));
      else
        last_index = size (obj, end_dim);
      endif
    endfunction

    Для получения дополнительной информации см. Объектно-ориентированное программирование.

См. также: for, parfor, if, do, while, function, switch, try, unwind_protect.

: return ¶

Немедленно возвращает управление выполнением из функции или скрипта вызывающему коду.

return используется для остановки выполнения кода и немедленного выхода из m-файла, а не продолжения до конца функции или скрипта.

Если функция или скрипт были вызваны напрямую, а не из вызывающего кода в m-файле, то Octave возвращается к командной строке.

См. также: function.

Управляющие структуры: ¶

: if (cond) … endif ¶
: if (cond) … else … endif ¶
: if (cond) … elseif (cond) … endif ¶
: if (cond) … elseif (cond) … else … endif ¶

Начало блока if.

Условие cond истинно, если оно не пусто и если *все* значения ненулевые.

x = 1;
if (x == 1)
  disp ("one");
elseif (x == 2)
  disp ("two");
else
  disp ("not one or two");
endif

См. также: switch.

: else ¶

Альтернативное действие для блока if.

См. if для примера.

См. также: if.

: elseif (cond) ¶

Альтернативное условное условие для блока if.

Условное выражение cond истинно, если оно не пусто и если все значения не равны нулю.

См. if для примера.

См. также: if.

: endif ¶

Помечает конец блока if.

См. if для примера.

См. также: if.

: switch statement ¶

Начало блока switch.

yesno = "yes";

switch (yesno)
  case {"Yes" "yes" "YES" "y" "Y"}
    value = 1;
  case {"No" "no" "NO" "n" "N"}
    value = 0;
  otherwise
    error ("invalid value");
endswitch

См. также: if, case, otherwise.

: case value ¶
: case {value, …} ¶

Оператор case в блоке switch.

Случаи в Octave взаимоисключающие и не наследуют, как в C. У оператора switch должен быть хотя бы один случай. См. switch для примера.

См. также: switch.

: otherwise ¶

Оператор по умолчанию в блоке switch, который выполняется, когда ни один другой оператор case не соответствует вводу.

См. также: switch, case.

: endswitch ¶

Помечает конец блока switch.

См. switch для примера.

См. также: switch.

: try ¶

Начало блока try-catch.

Если в блоке try произойдет ошибка, то выполнится код catch, и выполнение продолжится после блока catch (хотя часто рекомендуется использовать функцию lasterr для повторной генерации ошибки после завершения очистки).

См. также: catch, unwind_protect.

: catch ¶
: catch value ¶

Начало части очистки блока try-catch.

См. также: try.

: end_try_catch ¶

Помечает конец блока try-catch.

См. также: try, catch.

: unwind_protect ¶

Начало блока unwind_protect.

Если в первой части блока unwind_protect произойдет ошибка, команды в блоке unwind_protect_cleanup будут выполнены перед выбросом ошибки. Если ошибка не возникнет, блок unwind_protect_cleanup все равно выполняется. Другими словами, код unwind_protect_cleanup гарантированно выполняется независимо от успеха или неудачи в блоке unwind_protect.

См. также: unwind_protect_cleanup, try.

: unwind_protect_cleanup ¶

Начало раздела очистки блока unwind_protect.

См. также: unwind_protect.

: end_unwind_protect ¶

Помечает конец блока unwind_protect.

См. также: unwind_protect.

Итерация по структурам: ¶

: for i = range ¶

Начало цикла for.

for i = 1:10
  i
endfor

См. также: parfor, do, while.

: endfor ¶

Помечает конец цикла for.

См. for для примера.

См. также: for.

: while (cond) ¶

Начало цикла while.

Условное выражение cond истинно, если оно не пусто и если все значения не равны нулю.

i = 0;
while (i < 10)
  i++
endwhile

См. также: do, endwhile, for, until.

: endwhile ¶

Помечает конец цикла while.

См. while для примера.

См. также: do, while.

: do ¶

Начало цикла do-until.

Это отличается от цикла while тем, что тело цикла выполняется как минимум один раз.

i = 0;
do
  i++
until (i == 10)

См. также: for, until, while.

: until (cond) ¶

Окончание цикла do-until.

Условное выражение cond истинно, если оно не пусто и если все значения не равны нулю.

См. do для примера.

См. также: do.

END_OF_DOCUMENT_MARKER
: parfor i = range ¶
: parfor (i = range, maxproc) ¶

Начать цикл for, который может выполняться параллельно.

Цикл parfor имеет такой же синтаксис, как цикл for. Если в вашей сессии Octave включён пул параллельной обработки, итерации цикла parfor будут выполняться параллельно на рабочих процессах пула. В противном случае, parfor будет вести себя точно так же, как for.

При работе в параллельном режиме итерации цикла parfor не гарантированно будут выполняться последовательно, и существуют дополнительные ограничения на операции доступа к данным внутри тела цикла.

Предупреждение: пулы параллельной обработки в настоящее время не реализованы в Octave; parfor в настоящее время ведет себя точно так же, как обычный цикл for.

parfor i = 1:10
  i
endparfor

См. также: for, do, while.

: endparfor ¶

Помечает конец цикла parfor.

См. parfor для примера.

См. также: parfor.

: break ¶

Выход из самого внутреннего вложенного цикла do, while или for.

См. также: do, while, for, parfor, continue.

: continue ¶

Переход к концу самого внутреннего вложенного цикла do, while или for.

См. также: break, do, while, for, parfor.

Структуры Classdef: ¶

: classdef ¶

Начало блока classdef.

См. также: properties, methods, events, enumeration.

: endclassdef ¶

Помечает конец определения classdef.

См. также: classdef.

: properties ¶

Помечает начало блока свойств в определении classdef. Обратите внимание, что функция функция "properties" — это функция, которая перечисляет свойства класса classdef или объекта.

См. также: endproperties.

: endproperties ¶

Помечает конец блока свойств в определении classdef.

См. также: properties.

: methods ¶

Помечает начало блока методов в определении classdef. Обратите внимание, что функция функция "methods" — это функция, которая перечисляет методы класса или объекта.

См. также: endmethods.

: endmethods ¶

Помечает конец блока методов в определении classdef.

См. также: methods.

: events ¶

Начало блока events в определении classdef.

: endevents ¶

Помечает конец блока events в определении classdef.

См. также: events.

: enumeration ¶

Начало блока enumeration в определении classdef.

: endenumeration ¶

Помечает конец блока enumeration в определении classdef.

См. также: enumeration.

Выполнение среды: ¶

: __FILE__ ¶

Когда лексический анализатор распознаёт ключевое слово "__FILE__", он возвращает символьный массив, содержащий полное имя и путь к выполняемому файлу. "__FILE__" вернёт stdin при вызове из командной строки.

См. также: __LINE__.

: __LINE__ ¶

Когда лексический анализатор распознаёт ключевое слово "__LINE__", он возвращает числовое значение, содержащее текущий номер строки входных данных выполняемой функции или файла. "__LINE__" вернёт 1 при вызове из командной строки.

См. также: __FILE__.

Далее: Parser, Наверх: Грамматика и анализатор [Оглавление][Индекс]

© 1996–2023 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.2.0/Keywords.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API