값으로 전달
2가지 유형의 가치가 있습니다.
포인터 래퍼 값
포인터가 아닌 값
포인터가 아닌 경우에는 별도로 재정의해야 합니다. 예를 들어
함수 매개변수로 변경하려고 할 때마다 해당 함수에 대한 새 매개변수의 변수 사본이 컴퓨터 메모리에 생성되므로 다음 코드에서 변수 값을 변경하려고 해도 변경되지 않습니다. 범위 범위로 인해
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]
}
읽어 주셔서 감사합니다
위너로즈
Reference
이 문제에 관하여(값으로 전달), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/winnerose/pass-by-value-2cj8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)