Suivre les bonnes pratiques suivantes lors de la création de types personnalisés dans Go peut améliorer la qualité du code : mettre la première lettre en majuscule, utiliser les alias de type recommandés, utiliser struct, utiliser embed pour éviter la duplication, implémenter des interfaces. Ces pratiques améliorent l'organisation, la lisibilité et la maintenabilité, comme le type de panier présenté dans l'exemple pratique.
Bonnes pratiques lors de la création de types personnalisés dans Go
La création de types personnalisés dans Go peut améliorer l'organisation, la lisibilité et la maintenabilité de votre code. Le respect de certaines bonnes pratiques peut garantir que vos types personnalisés sont bien conçus et efficaces.
Mise en majuscule la première lettre
Selon la convention Go, la première lettre du nom du type personnalisé doit être en majuscule. Cela permet de distinguer les types personnalisés des autres identifiants.
type Customer struct { // ... } type Order struct { // ... }
Utilisez les alias de type recommandés
Pour les types intégrés couramment utilisés, il est recommandé d'utiliser les alias de type recommandés. Par exemple, pour les erreurs, utilisez l'alias de type error
au lieu de interface{}
. error
类型别名而不是 interface{}
。
type MyError struct { msg string } func (e MyError) Error() string { return e.msg } func CheckSomething() error { // ... }
使用 struct
使用 struct
来表示具有多个字段的自定义数据类型。将相关字段组合到一个 struct
中可以提高代码的可读性和可维护性。
type Person struct { Name string Age int Address string }
使用 embed 来避免重复
当多个自定义类型具有相同的子集字段时,可以使用 embed
type Person struct { Name string Age int Contact Information } type Information struct { Address string Phone string }
Utilisez struct
Utilisezstruct
pour représenter des types de données personnalisés avec plusieurs champs. Le regroupement des champs associés dans une struct
peut améliorer la lisibilité et la maintenabilité du code. type Shape interface { Area() float64 } type Rectangle struct { Width float64 Height float64 } func (r Rectangle) Area() float64 { return r.Width * r.Height }
Utilisez l'intégration pour éviter la duplication
Lorsque plusieurs types personnalisés ont les mêmes champs de sous-ensemble, vous pouvez utiliserembed
pour intégrer les champs partagés dans l'un des types. Cela évite la duplication du code et maintient le code propre. type Cart struct { Items []Item TotalPrice float64 } type Item struct { Name string Price float64 Qty int } func main() { // 创建购物车 cart := &Cart{} // 向购物车添加物品 item1 := Item{Name: "Apple", Price: 1.0, Qty: 1} item2 := Item{Name: "Banana", Price: 1.5, Qty: 2} cart.Items = append(cart.Items, item1, item2) // 计算总价 for _, item := range cart.Items { cart.TotalPrice += item.Price * float64(item.Qty) } // 打印购物车内容 fmt.Printf("Shopping cart contents:\n\n") for _, item := range cart.Items { fmt.Printf("%s (%dx): $%.2f\n", item.Name, item.Qty, item.Price) } // 打印总价 fmt.Printf("\nTotal price: $%.2f\n", cart.TotalPrice) }
Implémentation d'interfaces
🎜🎜L'implémentation d'interfaces permet aux types personnalisés d'avoir des fonctionnalités supplémentaires. Ceci peut être réalisé en définissant des méthodes de type qui satisfont à la signature de la méthode d'interface. 🎜rrreee🎜🎜Cas pratique🎜🎜🎜Créons un type personnalisé qui représente un panier : 🎜rrreee🎜Ce type personnalisé encapsule les données du panier, simplifiant le processus de gestion de plusieurs articles et de calcul du prix total. 🎜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!