详见关键字:全球的
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
在顶层保持不变,因为该函数与复制它的参数。
编程注意事项:虽然全局变量偶尔是解决编码问题的正确方法,但现代最佳实践不鼓励使用它们。依赖于全局变量的代码在不同的用户之间可能表现得不可预测,并且很难调试。这是因为全局变量可能会引入系统性更改,因此很难将错误定位到特定函数或函数中的特定循环。
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号