Golang의 범위 이해

4073 단어 go

This article first appeared on my personal website https://luigimorel.co



범위란 무엇입니까?



범위는 값과 표현식이 "보이거나"프로그램 내에서 액세스할 수 있는 현재 실행 컨텍스트로 정의할 수 있습니다.
변수나 표현식이 현재 범위에 없으면 프로그램의 다른 부분에서 사용할 수 없습니다.

Go에는 두 가지 유형의 범위가 있습니다.

로컬 범위



로컬 범위는 변수가 함수 본문 내에서 선언될 때 달성됩니다. 이러한 변수는 따라서 (함수 내에서) 로컬 범위를 갖는다고 합니다.
함수 외부에서 액세스할 수 없습니다.

이러한 유형의 변수를 지역 변수라고 합니다. 예를 들어,

package main
import "fmt"

func printNumber() {

 b := 2

}

func main() {

printNumber()

// b is inaccessible
fmt.Println("Value of b is", b)

}


글로벌 범위



변수가 함수 본문 외부에서 선언되면 전역 범위를 갖습니다. 이러한 변수를 전역 변수라고 합니다.
프로그램의 모든 부분에서 액세스할 수 있습니다.
예를 들어,


package main
import "fmt"

var x string

func printString () {

x = "This is a string"

}


func main() {

  printString()

  fmt.Println("Value of x is", x)

}


프로그램에서 범위가 중요한 이유는 무엇입니까?


  • 범위는 프로그램에서 불필요한 버그를 피하는 데 도움이 되는 프로그램 수명 동안 할당된 값의 변경을 방지하는 데 도움이 됩니다.

  • 변수가 전역 및 지역 범위에서 동일한 이름을 갖는 경우 어떻게 됩니까?



    변수 이름이 같은 지역 변수와 전역 변수가 있는 경우 컴파일러는 지역 변수에 우선 순위를 부여합니다.
    예를 들어,

    // Program to illustrate the priorities of variables
    
    package main
    import "fmt"
    
    // define global variable
    x  := 10
    
    func main() {
    
     // define local variable with same name
      x := 30
    
      fmt.Println(random)
    }
    
    


    산출




    30
    


    자원


  • https://golangr.com/scope/
  • https://developer.mozilla.org/en-US/docs/Glossary/Scope
  • https://go.dev/doc/
  • 좋은 웹페이지 즐겨찾기