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 опущено, возвращает список ключевых слов.
Объявление переменных: ¶
-
: 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.
- : 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
Примечания к программированию:
- Ключевое слово
endне может быть использовано внутриsubsref,subsasgn, илиsubstructдля ручных операций индексирования. - Для пользовательских классов, чтобы включить использование
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.
-
: elseif
(cond)¶ -
Альтернативное условное условие для блока if.
Условное выражение cond истинно, если оно не пусто и если все значения не равны нулю.
См.
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
-
: case
value¶ -
: case
{value, …}¶ -
Оператор case в блоке switch.
Случаи в Octave взаимоисключающие и не наследуют, как в C. У оператора switch должен быть хотя бы один случай. См.
switchдля примера.См. также: switch.
- : otherwise ¶
-
Оператор по умолчанию в блоке switch, который выполняется, когда ни один другой оператор case не соответствует вводу.
- : try ¶
-
Начало блока try-catch.
Если в блоке try произойдет ошибка, то выполнится код catch, и выполнение продолжится после блока catch (хотя часто рекомендуется использовать функцию
lasterrдля повторной генерации ошибки после завершения очистки).См. также: catch, unwind_protect.
- : 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.
Итерация по структурам: ¶
-
: while
(cond)¶ -
Начало цикла while.
Условное выражение cond истинно, если оно не пусто и если все значения не равны нулю.
i = 0; while (i < 10) i++ endwhile
- : do ¶
-
Начало цикла do-until.
Это отличается от цикла while тем, что тело цикла выполняется как минимум один раз.
i = 0; do i++ until (i == 10)
-
: parfor
i = range¶ -
: parfor
(i = range, maxproc)¶ -
Начать цикл for, который может выполняться параллельно.
Цикл
parforимеет такой же синтаксис, как циклfor. Если в вашей сессии Octave включён пул параллельной обработки, итерации циклаparforбудут выполняться параллельно на рабочих процессах пула. В противном случае,parforбудет вести себя точно так же, какfor.При работе в параллельном режиме итерации цикла
parforне гарантированно будут выполняться последовательно, и существуют дополнительные ограничения на операции доступа к данным внутри тела цикла.Предупреждение: пулы параллельной обработки в настоящее время не реализованы в Octave;
parforв настоящее время ведет себя точно так же, как обычный циклfor.parfor i = 1:10 i endparfor
- : break ¶
-
Выход из самого внутреннего вложенного цикла do, while или for.
- : continue ¶
-
Переход к концу самого внутреннего вложенного цикла do, while или for.
Структуры Classdef: ¶
- : classdef ¶
-
Начало блока classdef.
См. также: properties, methods, events, enumeration.
- : properties ¶
-
Помечает начало блока свойств в определении classdef. Обратите внимание, что функция функция
"properties"— это функция, которая перечисляет свойства класса classdef или объекта.См. также: endproperties.
- : endproperties ¶
-
Помечает конец блока свойств в определении classdef.
См. также: properties.
- : methods ¶
-
Помечает начало блока методов в определении classdef. Обратите внимание, что функция функция
"methods"— это функция, которая перечисляет методы класса или объекта.См. также: endmethods.
- : events ¶
Начало блока events в определении classdef.
- : enumeration ¶
Начало блока enumeration в определении classdef.
- : endenumeration ¶
-
Помечает конец блока enumeration в определении classdef.
См. также: enumeration.
Выполнение среды: ¶
© 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