Go 언어의 값 전달 소개

풀어 주다: 2020-06-17 17:27:54
앞으로
2868명이 탐색했습니다.

Go 언어의 값 전달 소개

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 언어 튜토리얼 칼럼

을 주목해주세요

위 내용은 Go 언어의 값 전달 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿