全域變數(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