Maison  >  Article  >  développement back-end  >  Utilisez la fonction fmt.Sscanf pour lire les données formatées à partir d'une chaîne et les affecter à plusieurs variables

Utilisez la fonction fmt.Sscanf pour lire les données formatées à partir d'une chaîne et les affecter à plusieurs variables

PHPz
PHPzoriginal
2023-07-25 19:34:521486parcourir

Utilisez la fonction fmt.Sscanf pour lire les données formatées d'une chaîne et les affecter à plusieurs variables

En langage Go, la fonction fmt.Sscanf peut nous aider à lire les données d'une chaîne dans un format spécifié et à les attribuer aux données lues est affecté à la variable correspondante. Cela offre une grande commodité pour le traitement des données de chaîne. Cet article explique comment utiliser la fonction fmt.Sscanf et fournit des exemples de code pour aider les lecteurs à mieux comprendre.

Tout d’abord, jetons un coup d’œil à l’utilisation de base de la fonction fmt.Sscanf. La définition de cette fonction est la suivante :

func Sscanf(str string, format string, a ...interface{}) (n int, err error)

Dans cette fonction, str est la chaîne à analyser, format est le format spécifié et a est la variable à transmettre. Cette fonction renvoie le nombre de paramètres n analysés avec succès et l'erreur d'erreur pendant le processus d'analyse.

Supposons maintenant que nous ayons la chaîne suivante : "Tom 20 180.12", à partir de laquelle nous voulons extraire le nom, l'âge et la taille, et les attribuer aux variables correspondantes. Le code est le suivant :

package main

import (
    "fmt"
)

func main() {
    str := "Tom 20 180.12"
    var name string
    var age int
    var height float64

    n, err := fmt.Sscanf(str, "%s %d %f", &name, &age, &height)
    if err != nil {
        fmt.Printf("解析错误:%v
", err)
    }
    fmt.Printf("成功解析的参数数目:%d
", n)
    fmt.Printf("姓名:%s
", name)
    fmt.Printf("年龄:%d
", age)
    fmt.Printf("身高:%.2f
", height)
}

Les résultats d'exécution sont les suivants :

成功解析的参数数目:3
姓名:Tom
年龄:20
身高:180.12

Dans le code, nous lisons la première chaîne dans la variable de nom et le deuxième entier via la chaîne de format spécifiée "%s %d %f" Lire la variable d'âge et le troisième nombre à virgule flottante dans la variable de taille. Grâce à la fonction fmt.Printf, nous pouvons imprimer les résultats correspondants.

Si nous souhaitons extraire des données plus complexes, telles que des dates, etc., nous pouvons utiliser certains caractères spéciaux. Voici quelques caractères de format couramment utilisés :

  • %d Lire un entier
  • %s Lire une chaîne
  • %f Lire un nombre à virgule flottante
  • %t Lire une valeur booléenne (vrai/faux)
  • %v Lire Prendre n'importe quel type de valeur
  • %c Lire un seul caractère
  • %q Lire une chaîne entre guillemets

Exemple de code :

package main

import (
    "fmt"
)

func main() {
    str := "2022-06-30"
    var year, month, day int

    n, err := fmt.Sscanf(str, "%d-%d-%d", &year, &month, &day)
    if err != nil {
        fmt.Printf("解析错误:%v
", err)
    }
    fmt.Printf("成功解析的参数数目:%d
", n)
    fmt.Printf("年:%d
", year)
    fmt.Printf("月:%d
", month)
    fmt.Printf("日:%d
", day)
}

Le résultat d'exécution est le suivant :

成功解析的参数数目:3
年:2022
月:6
日:30

En utilisant la fonction fmt.Sscanf, nous pouvons facilement lire le formaté données d’une chaîne et assignez-les à plusieurs variables. Une telle fonctionnalité est très utile pour travailler avec des données de chaîne et évite les tracas liés à l'analyse manuelle des chaînes. Dans le même temps, en utilisant la chaîne de contrôle de format spécifiée, nous pouvons également extraire les données requises de manière plus flexible. J'espère que l'exemple de code de cet article pourra aider les lecteurs à mieux comprendre et utiliser cette fonction.

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