Maison  >  Article  >  développement back-end  >  Validation des paramètres de la fonction Golang et conversion du type de données

Validation des paramètres de la fonction Golang et conversion du type de données

WBOY
WBOYoriginal
2024-04-13 13:54:02442parcourir

Le langage Go fournit des méthodes de vérification des paramètres et de conversion des types de données pour garantir la sécurité et la maintenabilité : Vérification des paramètres : utilisez des assertions pour vérifier si les conditions sont remplies et déclenchez une panique si elles ne le sont pas. Types d'erreur personnalisés pour indiquer les paramètres non valides et les renvoyer. Conversion de type de données : utilisez le package strconv pour convertir explicitement les chaînes en d'autres types. Effectuez automatiquement des conversions de types implicites lorsque les types sont compatibles. Ces techniques permettent de garantir la validité des paramètres de fonction et de convertir facilement les types de données, améliorant ainsi la fiabilité et la maintenabilité de votre code.

Validation des paramètres de la fonction Golang et conversion du type de données

Vérification des paramètres de fonction du langage Go et conversion du type de données

Dans le langage Go, la vérification des paramètres de fonction et la conversion du type de données sont des mesures de sécurité et de maintenabilité importantes. Ce didacticiel vous expliquera comment utiliser les outils intégrés et les méthodes personnalisées pour effectuer ces opérations efficacement.

Validation des paramètres

Le langage Go ne fournit pas de mécanisme natif de validation des paramètres, mais il existe deux alternatives courantes :

  • Utiliser des assertions : Les assertions peuvent être utilisées pour vérifier si un paramètre de fonction répond à une condition spécifique et déclencher une paniquez si ce n’est pas le cas.
func ValidateUser(name string, age int) {
  if name == "" {
    panic("name cannot be empty")
  }
  if age < 0 {
    panic("age cannot be negative")
  }
}
  • Types d'erreur personnalisés : Vous pouvez créer des types d'erreur personnalisés et les renvoyer pour indiquer des paramètres non valides.
type InvalidParameterError struct {
  param string
  msg string
}

func (e *InvalidParameterError) Error() string {
  return fmt.Sprintf("invalid parameter: %s - %s", e.param, e.msg)
}

func ValidateUser(name string, age int) error {
  if name == "" {
    return &InvalidParameterError{param: "name", msg: "cannot be empty"}
  }
  if age < 0 {
    return &InvalidParameterError{param: "age", msg: "cannot be negative"}
  }

  return nil
}

Conversion de type de données

Le langage Go prend en charge la conversion de type de données explicite et implicite.

  • Conversion explicite : Utilisez le package strconv pour convertir des chaînes en d'autres types.
import "strconv"

func ConvertAgeToInt(age string) (int, error) {
  return strconv.Atoi(age)
}
  • Conversion implicite : Dans certains cas, la conversion de type implicite est automatiquement effectuée lorsque les types sont compatibles.
func AddNumber(a, b int) int {
  // 隐式将 a 转换为 float64
  return a + float64(b)
}

Cas pratique

Cas 1 : Validation des saisies utilisateur

Dans une application web, nous pouvons avoir besoin de valider les saisies utilisateur reçues depuis un formulaire.

func ValidateUserInput(name string, email string) error {
  if name == "" {
    return &InvalidParameterError{param: "name", msg: "cannot be empty"}
  }

  if _, err := mail.ParseAddress(email); err != nil {
    return &InvalidParameterError{param: "email", msg: "invalid email format"}
  }

  return nil
}

Cas 2 : Conversion de type de données

Les données récupérées de la base de données peuvent être une chaîne, mais nous devrons peut-être les convertir en d'autres types pour le traitement.

func ConvertDuration(duration string) (time.Duration, error) {
  duration, err := strconv.ParseInt(duration, 10, 64)
  if err != nil {
    return 0, err
  }

  return time.Duration(duration)
}

En utilisant ces techniques, vous pouvez garantir la validité des paramètres de fonction et convertir facilement les données en types requis, améliorant ainsi la fiabilité et la maintenabilité de votre code.

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