Heim >Backend-Entwicklung >Golang >So starten Sie Golang Iota

So starten Sie Golang Iota

(*-*)浩
(*-*)浩Original
2019-12-03 11:01:133974Durchsuche

So starten Sie Golang Iota

iota ist ein konstanter Zähler in der Golang-Sprache und kann nur in konstanten Ausdrücken verwendet werden.

iota wird auf 0 zurückgesetzt, wenn das Schlüsselwort const erscheint (vor der ersten Zeile in const). Jede neue Zeile der Konstantendeklaration in const führt dazu, dass iota einmal zählt( Iota kann als Zeilenindex im const-Anweisungsblock verstanden werden. (Empfohlenes Lernen: go)

Die Verwendung von iota kann die Definition vereinfachen und ist beim Definieren von Aufzählungen sehr nützlich.

In der Konstantendefinition kann iota bequem einen Wert von 0 in Schritten von 1, 0,1,2,3,4,5... iterieren.

Dieses Beispiel basiert auf dem 10. Potenzübertrag des Dateigrößenformats 2, wobei KB um 10 Bit nach links und MB um 20 Bit nach links verschoben werden. . .

Sprintf("%f",x) in diesem Artikel verursacht keinen Endlosschleifenfehler, da es in der String-Methode definiert ist, da %f nicht versucht, String() aufzurufen

package main
import (
    "fmt"
)
type ByteSize float64
const (
    _ = iota
    KB ByteSize = 1 << (10*iota)
    MB
    GB
    TB
    PB
    EB
    ZB
    YB
)
func (b ByteSize) String() string{
    switch {
        case b >= YB:
            return fmt.Sprintf("%.2fYB",b/YB)
        case b >= ZB:
            return fmt.Sprintf("%.2fZB",b/ZB)
        case b >= EB:
            return fmt.Sprintf("%.2fEB",b/EB)
        case b >= PB:
            return fmt.Sprintf("%.2fPB",b/PB)
        case b >= TB:
            return fmt.Sprintf("%.2fTB",b/TB)
        case b >= GB:
            return fmt.Sprintf("%.2fGB",b/GB)
        case b >= MB:
            return fmt.Sprintf("%.2fMB",b/MB)
        case b >= KB:
            return fmt.Sprintf("%.2fKB",b/KB)

    }
    return fmt.Sprintf("%.2fB",b)
}

func main() {
    fmt.Println(ByteSize(1e10))
}

Das obige ist der detaillierte Inhalt vonSo starten Sie Golang Iota. 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
Vorheriger Artikel:Was sind Golang-IDEs?Nächster Artikel:Was sind Golang-IDEs?