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)

如果返回truename是Octave关键字。

如果name如果省略,则返回关键字列表。

详见: isvarname, exist.

广告

变量语句:

 
: global var

语句变量具有全局作用域。

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

详见: persistent.

广告
 
: persistent var

将变量语句为持久变量。

已在函数中语句为持久的变量将在对同一函数的后续调用之间将其内容保留在内存中。持久变量和全局变量之间的区别在于,持久变量在特定函数的范围内是局部的,在其他地方是不可见的。

详见: global.

广告

函数定义:

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

以名称开始函数体function_name具有outputsasresults,和inputs作为参数。

稍后可以使用以下语法在Octave中调用该函数

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

详见: return.

广告
 
: endfunction

符号函数的结束。

详见: function.

广告
 
: end

数组的最后一个元素或任意元素的末尾for, parfor,if, do, while, function, switch,tryunwind_protect

作为数组的索引,魔术索引"end"指索引操作中的最后一个有效条目。

用例

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

编程注意事项:

  1. 这个end关键字不能在中使用subsref,subsasgnsubstruct用于手动索引操作。
  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
    

    有关更多信息,详见Object Oriented Programming.

详见: 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

开始切换块。

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语句。

Octave大小写是排他的,不会像C语言大小写那样失败。一个switch语句必须至少有一个case。详见switch例如。

详见: switch.

广告
 
: otherwise

开关块中的默认语句,当没有其他case语句与输入匹配时执行。

详见: switch, case.

广告
 
: endswitch

符号开关块的末端。

详见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

开始一个直到循环。

这与while循环的不同之处在于,循环的主体至少执行一次。

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

详见: for, until, while.

广告
 
: until (cond)

结束一个直到循环。

有条件的cond如果它不是空的,并且如果全部的值为非零。

详见do例如。

详见: do.

广告
 
: parfor i = range
: parfor (i = range, maxproc)

开始一个可能并行执行的for循环。

A.parfor循环的语法与for环如果您的Octavesession启用了并行处理池,则的迭代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

在classdef定义中开始一个事件块。

广告
 
: endevents

在classdef定义中符号事件块的结束。

详见: events.

广告
 
: enumeration

在classdef定义中开始枚举块。

广告
 
: endenumeration

在classdef定义中符号枚举块的末尾。

详见: enumeration.

广告

执行环境:

 
: __FILE__

当lexer识别出"__FILE__"关键字返回一个包含正在执行的文件的全名和路径的字符数组。"__FILE__"将返回stdin如果从命令行调用。

详见: __LINE__.

广告
 
: __LINE__

当lexer识别出"__LINE__"关键字返回一个数值,该数值包含正在执行的函数或文件的当前输入行号。"__LINE__"将返回1如果从命令行调用。

详见: __FILE__.

广告

版权所有 © 2024-2025 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2