global로 선언한 변수는 함수 몸체에서 정규 매개변수 없이 접근할 수 있습니다.
global
선언문으로 변수를 전역적으로 선언합니다. 아래 명령문 모두 전역 선언입니다.
global a global a b global c = 2 global d = 3 e f = 5
전역 변수는 global
선언문에서 한 번만 초기화됩니다. 예를 들어, 아래 부호를 실행하여도
global gvar = 1 global gvar = 2
전역 변수 gvar
의 값은 1이지 2가 아닙니다. ‘clear gvar’를 실행하여도 전역
변수는 사라지지 않지만, ‘clear all’을 실행하면 전역 변수도 사라집니다.
전역 변수에 접근하기 위하여 반드시 함수 몸체 안에서 변수를 전역으로 선언하여야 합니다. 예를 들어,
global x function f () x = 1; endfunction f ()
는 전역 변수 x
을 1로 설정하지 않습니다. 전역 변수 x
의 값을 바꾸려면,
아래처럼 함수 몸체 안에서 전역 선언을 하여야 합니다.
function f () global x; x = 1; endfunction
함수 매개변수 목록에 전역 변수를 넣으면, 전역 변수의 울안 사본을 만들어 수정하며, 전역 값은 수정하지 않습니다. 예를 들어, 아래 함수가 존재하고,
function f (x) x = 0 endfunction
최상위에서 x
를 전역 변수로 정의하면,
global x = 13
아래 표현식은
f (x)
함수 내부의 x
값인 0을 보여주지만, 최상위의 x
값은 함수가 매개변수
사본에 작동하였기에 바뀌지 않습니다.