7.1全局变量

详见关键字:全球的

A.全球的变量是可以在Octave中的任何位置访问的变量。这与局部变量形成了鲜明对比,局部变量只有在显式传递的情况下才能在其当前上下文之外访问,例如在调用函数时将其作为参数包含(fcn(local_var1, local_var2)).

变量通过使用语句为全局全球的语句语句。以下语句均为全局语句。

全局全局a全局c=2全局d=3 e f=5

请注意全球的限定符仅扩展到statementindicator的下一个末尾,该指示符可以是逗号(,),分号(;),或换行符(n’). 例如,下面的代码语句了一个全局变量,a,和一个局部变量b值1被赋值给它。

全局a,b=1

全局变量只能在中初始化一次全球的语句例如,在执行以下代码之后

全球gvar=1全球gvar=2

全局变量的值gvar是1,而不是2。发布清除gvar命令不会更改上述行为,但清除所有

为了访问一个通用变量,有必要在函数体中将变量语句为全局变量。例如

全局x函数f()x=1;endfunctionf()

设置全局变量的值x至1。而是一个名为的局部变量x,被创建并赋值了值1。为了更改全局变量的值x,您还必须语句它在函数体中是全局的,如下所示

函数f()全局x;x=1;结束函数

在函数参数列表中传递全局变量将生成本地复制修改全局值。例如,给定函数

函数f(x)x=0结束函数

以及的定义x作为顶层的全局变量,

全局x=13

表达式

f(x)

将显示的值x从函数内部作为0,但的值x在顶层保持不变,因为该函数与复制它的参数。

编程注意事项:虽然全局变量偶尔是解决编码问题的正确方法,但现代最佳实践不鼓励使用它们。依赖于全局变量的代码在不同的用户之间可能表现得不可预测,并且很难调试。这是因为全局变量可能会引入系统性更改,因此很难将错误定位到特定函数或函数中的特定循环。

 
: tf = isglobal (name)

如果返回truename是一个全局可见的变量。

例如

全局xisglobal(“x”)⇒ 1.

详见: isvarname, 存在.


版权所有 © 2024 Octave中文网

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