Maison >développement back-end >Golang >Pourquoi `fmt.Println` préfère-t-il `Error()` à `String()` dans Go ?
Error() Overrides String() dans fmt.Println
Dans le langage de programmation Go, lorsqu'un type implémente à la fois String() et Méthodes Error(), la fonction fmt.Println donne la priorité à Error(). Cela signifie que si les deux méthodes sont implémentées pour un type particulier, fmt.Println utilisera la sortie générée par Error().
Pour comprendre pourquoi c'est le cas, il est important de consulter la documentation du paquet fmt. Selon la documentation, il existe des règles spécifiques qui régissent la manière dont fmt formate différents types de données. Ces règles sont appliquées dans l'ordre suivant :
Dans l'exemple fourni, le type Person implémente les deux Méthodes String() et Error(). Cependant, lorsque la fonction fmt.Println est appelée pour imprimer le type Person, la méthode Error() est appelée à la place de la méthode String(). En effet, la méthode Error() a priorité sur la méthode String() conformément aux règles décrites dans la documentation du package fmt.
Par conséquent, lorsqu'un type implémente à la fois les méthodes String() et Error(), le La fonction fmt.Println utilisera toujours la sortie de la méthode Error(). En effet, la méthode Error() est classée plus haut que la méthode String() dans l'ordre des règles de formatage.
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!