Maison > développement back-end > Golang > le corps du texte

Comment démarrer Golang Iota

(*-*)浩
Libérer: 2019-12-03 11:01:13
original
3937 Les gens l'ont consulté

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))
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal