이동-범위 규칙
모든 프로그래밍에서 범위는 정의 된 변수가 존재할 수 있고 그 이상으로 변수에 액세스 할 수없는 프로그램의 영역입니다. Go 프로그래밍 언어에서 변수를 선언 할 수있는 세 곳이 있습니다.
함수 또는 블록 (local 변수)
모든 기능 (global 변수)
함수 매개 변수의 정의 (formal 매개 변수)
무엇인지 알아 보자 local 과 global 변수와 무엇입니까 formal 매개 변수.
지역 변수
함수 또는 블록 내에서 선언 된 변수를 지역 변수라고합니다. 해당 함수 또는 코드 블록 내부에있는 문에서만 사용할 수 있습니다. 지역 변수는 자체 외부 함수에 알려지지 않았습니다. 다음 예제에서는 지역 변수를 사용합니다. 여기서 모든 변수 a, b 및 c는 main () 함수에 국한됩니다.
package main
import "fmt"
func main() {
/* local variable declaration */
var a, b, c int
/* actual initialization */
a = 10
b = 20
c = a + b
fmt.Printf ("value of a = %d, b = %d and c = %d\n", a, b, c)
}
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.
value of a = 10, b = 20 and c = 30
글로벌 변수
전역 변수는 일반적으로 프로그램 상단에서 함수 외부에서 정의됩니다. 전역 변수는 프로그램의 수명 내내 해당 값을 유지하며 프로그램에 대해 정의 된 함수 내에서 액세스 할 수 있습니다.
전역 변수는 모든 함수에서 액세스 할 수 있습니다. 즉, 전역 변수는 선언 후 프로그램 전체에서 사용할 수 있습니다. 다음 예제는 전역 및 지역 변수를 모두 사용합니다-
package main
import "fmt"
/* global variable declaration */
var g int
func main() {
/* local variable declaration */
var a, b int
/* actual initialization */
a = 10
b = 20
g = a + b
fmt.Printf("value of a = %d, b = %d and g = %d\n", a, b, g)
}
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.
value of a = 10, b = 20 and g = 30
프로그램은 지역 및 전역 변수에 대해 동일한 이름을 가질 수 있지만 함수 내 지역 변수의 값이 우선합니다. 예를 들면-
package main
import "fmt"
/* global variable declaration */
var g int = 20
func main() {
/* local variable declaration */
var g int = 10
fmt.Printf ("value of g = %d\n", g)
}
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.
value of g = 10
공식 매개 변수
형식 매개 변수는 해당 함수 내에서 지역 변수로 처리되며 전역 변수보다 우선합니다. 예를 들면-
package main
import "fmt"
/* global variable declaration */
var a int = 20;
func main() {
/* local variable declaration in main function */
var a int = 10
var b int = 20
var c int = 0
fmt.Printf("value of a in main() = %d\n", a);
c = sum( a, b);
fmt.Printf("value of c in main() = %d\n", c);
}
/* function to add two integers */
func sum(a, b int) int {
fmt.Printf("value of a in sum() = %d\n", a);
fmt.Printf("value of b in sum() = %d\n", b);
return a + b;
}
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.
value of a in main() = 10
value of a in sum() = 10
value of b in sum() = 20
value of c in main() = 30
로컬 및 글로벌 변수 초기화
지역 및 전역 변수는 기본값 인 0으로 초기화됩니다. 포인터는 nil로 초기화됩니다.
데이터 형식 | 초기 기본값 |
---|---|
int | 0 |
float32 | 0 |
바늘 | 무 |