Maison >développement back-end >Golang >Comment démarrer Golang Iota

Comment démarrer Golang Iota

(*-*)浩
(*-*)浩original
2019-12-03 11:01:133984parcourir

Comment démarrer Golang Iota

iota est un compteur constant en langage golang et ne peut être utilisé que dans des expressions constantes.

iota sera réinitialisé à 0 lorsque le mot-clé const apparaît (avant la première ligne à l'intérieur de const). Chaque nouvelle ligne de déclaration de constante dans const fera compter iota une fois(). iota peut être compris comme l'index de ligne dans le bloc d'instruction const). (Apprentissage recommandé : go)

L'utilisation d'iota peut simplifier la définition et est très utile lors de la définition d'énumérations.

Dans la définition constante, iota peut facilement itérer une valeur de 0 par pas de 1, 0,1,2,3,4,5...

Cet exemple est basé sur la 10ème puissance portée du format de taille de fichier 2, en décalant les Ko vers la gauche de 10 bits et les Mo vers la gauche de 20 bits. . .

Le Sprintf("%f",x) dans cet article ne provoquera pas de bug de boucle infinie car il est défini dans la méthode String, car %f n'essaiera pas d'appeler String()

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Que sont les IDE Golang ?Article suivant:Que sont les IDE Golang ?