값으로 전달

3388 단어 tutorialgo
이 섹션에서는 "가치에 의한 전달"이 무엇을 의미하는지 논의할 것입니다.
2가지 유형의 가치가 있습니다.

포인터 래퍼 값
  • 지도
  • 슬라이스
  • 기능

  • 포인터가 아닌 값
  • 문자열
  • Int
  • 수레
  • 부울
  • 어레이
  • 구조물

  • 포인터가 아닌 경우에는 별도로 재정의해야 합니다. 예를 들어

    함수 매개변수로 변경하려고 할 때마다 해당 함수에 대한 새 매개변수의 변수 사본이 컴퓨터 메모리에 생성되므로 다음 코드에서 변수 값을 변경하려고 해도 변경되지 않습니다. 범위 범위로 인해

    package main
    
    import "fmt"
    
    func changevalue(i int) {
        i = 20
    }
    
    func main() {
        i := 5
        changevalue(i)
    
        fmt.Println("Value:", i) // Value: 5
    }
    


    이것이 포인터 래퍼 값에 대해 묻는다면 변수에 대한 복사본을 만드는 대신 메모리 주소를 직접 업데이트합니다.

    package main
    
    import "fmt"
    
    func changevalue(y map[string]float64) {
        y["baklava"] = 15.5
    }
    
    func main() {
    
        menu := map[string]float64{
            "pie":       35.6,
            "ice cream": 20.4,
        }
    
        fmt.Println(menu) // map[ice cream:20.4 pie:35.6]
        changevalue(menu)
        fmt.Println(menu) // map[baklava:15.5 ice cream:20.4 pie:35.6]
    }
    
    


    읽어 주셔서 감사합니다
    위너로즈

    좋은 웹페이지 즐겨찾기