Golang 구조체 복사

Golang (또는 Go 언어)는 효율적이고 고성능의 프로그래밍 언어로 널리 알려져 있습니다. 그 중에서도 구조체는 데이터를 표현하는 강력한 도구입니다. 그러나 Golang 구조체를 복사하는 방법에 대해 혼란스러워할 수 있습니다. 이 기사에서는 구조체를 복사하는 기본적인 방법을 3가지 이상 소개하고 코드 예제를 통해 이를 명확하게 설명하겠습니다.

구조체 복사 방법

방법 1: 단순 대입

가장 기본적인 방법은 단순 대입을 사용하는 것입니다. 이 방법은 원본 구조체와 복사 대상 구조체가 동일한 유형인 경우에 사용할 수 있습니다.

package main

import "fmt"

type Person struct {
    FirstName string
    LastName  string
}

func main() {
    person1 := Person{"John", "Doe"}
    var person2 Person

    person2 = person1 // 구조체 복사

    fmt.Println(person2)
}

방법 2: 포인터를 사용한 복사

포인터를 사용하여 구조체를 복사할 수도 있습니다. 이를 통해 원본 구조체와 복사 대상 구조체가 동일한 메모리를 공유할 수 있습니다.

package main

import "fmt"

type Person struct {
    FirstName string
    LastName  string
}

func main() {
    person1 := &Person{"John", "Doe"}
    var person2 *Person

    person2 = person1 // 포인터를 사용한 복사

    fmt.Println(*person2)
}

방법 3: copy() 함수 사용

copy() 함수를 사용하여 구조체를 복사할 수도 있습니다. 이 방법은 구조체가 슬라이스 내에 있는 경우 등에 유용합니다.

package main

import "fmt"

type Person struct {
    FirstName string
    LastName  string
}

func main() {
    person1 := Person{"John", "Doe"}
    personSlice := []Person{person1}
    var person2 Person

    copy(personSlice, personSlice) // `copy()` 함수 사용

    person2 = personSlice[0]

    fmt.Println(person2)
}

이러한 방법을 사용하여 Golang에서 구조체를 복사하는 기본 방법을 이해했습니다. 적절한 상황에 따라 각 방법을 선택하십시오. 어떤 방법을 선택하더라도 Golang의 구조체 복사는 간단하고 효율적인 작업입니다.

タイトルとURLをコピーしました