ホームページ  >  記事  >  バックエンド開発  >  Golang の値変換を導入する 2 つの側面

Golang の値変換を導入する 2 つの側面

PHPz
PHPzオリジナル
2023-04-03 09:18:41721ブラウズ

Go言語(Golang)では型変換が必要になることが多く、特に異なる型の変数を扱う場合には値(value)間の変換が必要となります。この記事では、Golang の値の変換を次の 2 つの側面から紹介します。

  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())
}

ここでは、2 つのカスタム タイプ MyInt と MyFloat を定義し、カスタム タイプの変換に使用される ToString() メソッドをそれぞれ定義します。文字列への型変換を定義します。 main関数では、まずMyInt型の変数iとMyFloat型の変数fを定義し、次にMyInt型からMyFloat型へ、MyFloat型からMyInt型へ値を変換し、最後に変換結果を文字列型に変換します。 ToString() メソッドを使用して簡単に出力します。

一般に、Golang での値の変換は非常に簡単で、対応する型の変換関数またはカスタム型の変換メソッドを使用するだけです。

以上がGolang の値変換を導入する 2 つの側面の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。