全域變數(Global Variables)
在宣告變數時可以使用 global
關鍵字將變數宣告為全域變數(Global Variables),例如:
global a global a b global c = 2 global d = 3 e f = 5
被宣告為全域的變數不需要以參數的形式傳入函數中,即可直接在函數中使用。
使用 global
宣告全域變數時,只能宣告一次,重複宣告不會有作用,例如:
global gvar = 1 global gvar = 2
此時 gvar
的值是 1
,不是 2
。
若要在函數中使用全域變數必須在函數中使用 global
宣告變數,例如:
global x function f () x = 1; endfunction f ()
這樣執行 f()
函數並不會將全域變數 x
變數指定為 1
,要將全域變數 x
指定為 1
必須在函數中使用 global
宣告變數:
function f () global x; x = 1; endfunction
將全域變數以參數的形式傳入函數中時,Octave 會將全域變數複製一份在函數中,不會影響到原來的全域變數,例如定義一個函數 f(x)
:
function f (x) x = 0 endfunction
另外再宣告一個全域變數:
global x = 13
將此全域變數傳入 f()
中:
f (x)
輸出為
x = 0
但最外層的全域變數 x
的值還是沒有改變,其值還是維持 13
。
isglobal (name)
isglobal(name)
函數會判斷變數 name
是否為可見的全域變數。例如:!
global x
isglobal ("x")
輸出為
ans = 1