>  기사  >  백엔드 개발  >  Go 언어의 값 전달 소개

Go 언어의 값 전달 소개

尚
앞으로
2020-06-17 17:27:542802검색

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으로 문의하시기 바랍니다. 삭제