So starten Sie Golang Iota

(*-*)浩
Freigeben: 2019-12-03 11:01:13
Original
3936 Leute haben es durchsucht

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))
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage