Go 또는 Golang에서 배열 사본을 만드는 방법은 무엇입니까?

8170 단어 go
Originally posted here!

Go 또는 golang에서 배열의 복사본을 만들려면 = 연산자(할당)를 사용하여 배열을 다른 변수에 할당하면 됩니다. 그러면 내용이 새 배열 변수에 복사됩니다.

TL; DR




package main

import "fmt"

func main(){
    // array of elements
    nums := [5]int{1, 2, 3, 4, 5}

    // copy the `nums` array elements to the
    // `numsCopy` using the `=` operator (assignment)
    numsCopy := nums

    // log to the elements of the
    // `numsCopy` variable to the console
    fmt.Println(numsCopy) // [1 2 3 4 5]

    // mutate the contents in the `numsCopy` array
    // to check to see if the contents in
    // the original array `nums` changes
    numsCopy[0] = 11

    // log both the `numsCopy` and `nums` array
    fmt.Println(numsCopy, nums) // [11 2 3 4 5] [1 2 3 4 5]
}


예를 들어, 다음과 같은 5개의 숫자 배열이 있다고 가정해 보겠습니다.

package main

func main(){
    // array of elements
    nums := [5]int{1, 2, 3, 4, 5}
}


이제 nums 배열의 요소를 복사하기 위해 numsCopy라는 또 다른 변수를 정의한 다음 = 연산자를 사용한 다음 단순히 nums 배열의 값을 여기에 할당할 수 있습니다.

다음과 같이 할 수 있습니다.

package main

func main(){
    // array of elements
    nums := [5]int{1, 2, 3, 4, 5}

    // copy the `nums` array elements to the
    // `numsCopy` using the `=` operator (assignment)
    numsCopy := nums
}


이제 numsCopynums 변수와 같은 요소가 있는지 확인하기 위해 먼저 다음과 같이 numsCopy 표준 패키지의 Println() 메서드를 사용하여 fmt 변수를 콘솔에 인쇄할 수 있습니다.

package main

import "fmt"

func main(){
    // array of elements
    nums := [5]int{1, 2, 3, 4, 5}

    // copy the `nums` array elements to the
    // `numsCopy` using the `=` operator (assignment)
    numsCopy := nums

    // log to the elements of the
    // `numsCopy` variable to the console
    fmt.Println(numsCopy) // [1 2 3 4 5]
}


이제 numsCopy 배열의 내용을 변경하고 nums 배열의 내용이 변경되는지 확인합니다. 다음과 같이 할 수 있습니다.

package main

import "fmt"

func main(){
    // array of elements
    nums := [5]int{1, 2, 3, 4, 5}

    // copy the `nums` array elements to the
    // `numsCopy` using the `=` operator (assignment)
    numsCopy := nums

    // log to the elements of the
    // `numsCopy` variable to the console
    fmt.Println(numsCopy) // [1 2 3 4 5]

    // mutate the contents in the `numsCopy` array
    // to check to see if the contents in
    // the original array `nums` changes
    numsCopy[0] = 11

    // log both the `numsCopy` and `nums` array
    fmt.Println(numsCopy, nums) // [11 2 3 4 5] [1 2 3 4 5]
}


보시다시피 numsCopy 배열 내용은 변경되지만 nums 배열 내용은 변경되지 않습니다. 이것은 nums 배열이 numsCopy 배열 변수에 성공적으로 복사되었음을 증명합니다. 예이 🥳!

The Go Playground에 있는 위의 코드를 참조하십시오.

그게 다야 😃.

이 정보가 유용하다고 생각되면 자유롭게 공유하세요 😃.

좋은 웹페이지 즐겨찾기