[go] 형식 변환과 타입 단언

Go 언어에서는 다양한 데이터 유형 간의 변환이 필요한 경우가 있습니다. 이 포스트에서는 이러한 경우를 다루고, 타입 단언에 대해 알아보겠습니다.

1. 형식 변환 (Type Conversion)

변수의 데이터 유형을 다른 유형으로 변환하는 과정을 형식 변환이라고 합니다. Go 언어에서 형식 변환은 명시적으로 수행되어야 합니다.

다음은 형식 변환의 예시입니다.

package main

import "fmt"

func main() {
    var num1 int = 10
    var num2 float64 = float64(num1)
    
    fmt.Printf("%T %v \n", num2, num2) // 출력: float64 10
}

위 코드에서 num1float64로 형식 변환하고 있습니다. 이때 float64(num1)와 같이 사용되었습니다.

2. 타입 단언 (Type Assertion)

인터페이스 값이 특정 유형으로 단언될 수 있습니다. 이를 타입 단언이라고 합니다. Go에서는 .(Type) 형태로 표현됩니다.

다음은 타입 단언의 사용 예시입니다.

package main

import "fmt"

func main() {
    var i interface{} = "Hello, world!"

    str, ok := i.(string)
    if ok {
        fmt.Printf("%T %v \n", str, str) // 출력: string Hello, world!
    }
}

위 코드에서 istring으로 단언하고(i.(string)) 이를 str에 할당하고 있는데, 이때 ok 변수를 통해 단언이 성공했는지를 확인하고 있습니다.

형식 변환과 타입 단언은 Go 언어에서 자주 사용되는 중요한 기능입니다.

결론

형식 변환과 타입 단언은 Go 언어에서 데이터 유형을 다룰 때 유용한 기능입니다. 형식 변환은 변수의 형식을 명시적으로 변환하는 과정이며, 타입 단언은 인터페이스 값의 유형을 단언하는 과정입니다.

형식 변환과 타입 단언을 잘 활용하여 Go 언어에서 안정적이고 효율적인 코드를 작성할 수 있습니다.

참고 자료