Go 언어 매개변수는 값으로만 전달할 수 있습니다
값 전달은 복사 프로세스입니다
Go: 값 전달
func bbb(list [4]int){ for i,_ := range list{ list[i] = 0 } } func main(){ list := [4]int{1,2,3,4} bbb(list) fmt.Println(list ) //[1 2 3 4] }
Javascript: 참조 전달
let list = [1,2,3,4] function bbb(list){ list.forEach((item,index)=>{ list[index] = 0 }) } bbb(list) console.log(list) //[0,0,0,0]
하지만 Go 언어는 포인터를 통한 참조 전달을 구현할 수 있습니다 역할 of
func bbb(p2 *[4]int){ //接受一个[4]int的指针 for i,_ := range p2{ p2[i] = 0 } } func main(){ list := [4]int{1,2,3,4} p := &list bbb(p) //传递指针 fmt.Println(list ) //[0 0 0 0] }
go 언어에서 전달하는 매개변수는 값으로만 전달할 수 있다고 하므로 실제로는 포인터 주소의 복사본이고 두 주소 모두 메인 함수의 변수 목록의 주소를 가리키므로 목록은 값이 변경되었습니다
더 많은 관련 지식은 go 언어 튜토리얼 칼럼
을 주목해주세요위 내용은 Go 언어의 값 전달 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!