Heim >Backend-Entwicklung >Golang >Zwei Aspekte führen zur Wertumwandlung von Golang

Zwei Aspekte führen zur Wertumwandlung von Golang

PHPz
PHPzOriginal
2023-04-03 09:18:41751Durchsuche

In der Go-Sprache (Golang) ist häufig eine Typkonvertierung erforderlich, insbesondere beim Umgang mit Variablen unterschiedlichen Typs ist eine Konvertierung zwischen Werten (Wert) erforderlich. In diesem Artikel wird die Wertkonvertierung von Golang unter den folgenden zwei Gesichtspunkten vorgestellt:

  1. Konvertierung zwischen Basistypen
  2. Konvertierung zwischen benutzerdefinierten Typen

Konvertierung zwischen Basistypen

In Golang ist die Konvertierung zwischen Basistypen sehr einfach. Verwenden Sie einfach die Konvertierungsfunktion des entsprechenden Typs. Im Folgenden finden Sie Beispielcode für die Konvertierung zwischen einigen Grundtypen:

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

Konvertierung zwischen benutzerdefinierten Typen

In Golang kann die Wertkonvertierung zwischen benutzerdefinierten Typen problematisch sein, da für die Typkonvertierung einige Methoden verwendet werden müssen. Das Folgende ist ein Beispielcode für die Konvertierung zwischen benutzerdefinierten Typen:

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

Hier definieren wir zwei benutzerdefinierte Typen MyInt und MyFloat und definieren jeweils eine ToString()-Methode für sie, die zum Konvertieren des benutzerdefinierten Typs in einen String verwendet wird. In der Hauptfunktion definieren wir zunächst eine MyInt-Typvariable i und eine MyFloat-Typvariable f, konvertieren dann die Werte vom MyInt-Typ in den MyFloat-Typ und vom MyFloat-Typ in den MyInt-Typ und konvertieren schließlich das konvertierte Ergebnis in einen String Geben Sie für eine einfache Ausgabe die ToString()-Methode ein.

Im Allgemeinen ist die Wertkonvertierung in Golang sehr einfach. Sie müssen lediglich die entsprechende Typkonvertierungsfunktion oder eine benutzerdefinierte Typkonvertierungsmethode verwenden.

Das obige ist der detaillierte Inhalt vonZwei Aspekte führen zur Wertumwandlung von Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn