>  기사  >  백엔드 개발  >  Golang의 가치 전환을 소개하는 두 가지 측면

Golang의 가치 전환을 소개하는 두 가지 측면

PHPz
PHPz원래의
2023-04-03 09:18:41726검색

Go 언어(Golang)에서는 타입 변환이 필요한 경우가 많으며, 특히 다양한 타입의 변수를 다룰 때에는 값(value) 간의 변환이 필요합니다. 이 기사에서는 다음 두 가지 측면에서 Golang의 값 변환을 소개합니다.

  1. 기본 유형 간 변환
  2. 사용자 정의 유형 간 변환

기본 유형 간 변환

Golang에서는 기본 유형 간 변환은 매우 간단합니다. 해당 유형의 변환 기능. 다음은 몇 가지 기본 유형 간의 변환을 위한 샘플 코드입니다.

package main

import (
    "fmt"
)

func main() {
    var i int = 5
    var f float32 = 3.2
    var b bool = true

    // int to float32
    var iToFloat32 float32 = float32(i)
    fmt.Printf("int to float32: %v\n", iToFloat32)

    // float32 to int
    var fToInt int = int(f)
    fmt.Printf("float32 to int: %v\n", fToInt)

    // int to bool
    var iToBool bool = i != 0
    fmt.Printf("int to bool: %v\n", iToBool)

    // bool to int
    var bToInt int = 0
    if b {
        bToInt = 1
    }
    fmt.Printf("bool to int: %v\n", bToInt)
}

사용자 정의 유형 간 변환

Golang에서는 유형 변환을 위해 일부 메서드를 사용해야 하기 때문에 사용자 정의 유형 간 값 변환이 번거로울 수 있습니다. 다음은 사용자 정의 유형 간 변환을 위한 샘플 코드입니다.

package main

import (
    "fmt"
)

type MyInt int

func (m MyInt) ToString() string {
    return fmt.Sprintf("%d", m)
}

type MyFloat float32

func (m MyFloat) ToString() string {
    return fmt.Sprintf("%.2f", m)
}

func main() {
    var i MyInt = 10
    var f MyFloat = 3.14

    // MyInt to MyFloat
    var iToFloat MyFloat = MyFloat(i)
    fmt.Printf("MyInt to MyFloat: %s\n", iToFloat.ToString())

    // MyFloat to MyInt
    var fToInt MyInt = MyInt(f)
    fmt.Printf("MyFloat to MyInt: %s\n", fToInt.ToString())
}

여기서 두 가지 사용자 정의 유형인 MyInt와 MyFloat를 정의하고 각각에 대해 사용자 정의 유형을 문자열로 변환하는 데 사용되는 ToString() 메서드를 정의합니다. Main 함수에서는 먼저 MyInt 유형 변수 i와 MyFloat 유형 변수 f를 정의한 후, 그 값을 MyInt 유형에서 MyFloat 유형으로, MyFloat 유형에서 MyInt 유형으로 변환하고 최종적으로 변환된 결과를 문자열로 변환합니다. 쉽게 출력하려면 ToString() 메서드를 통해 입력하세요.

일반적으로 Golang의 값 변환은 매우 간단합니다. 해당 유형 변환 기능이나 사용자 정의 유형 변환 방법만 사용하면 됩니다.

위 내용은 Golang의 가치 전환을 소개하는 두 가지 측면의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.