Avatar ·

Comment ajouter de nouvelles méthodes à un type existant en Go ? (par exemple, à int ou string)

Bonjour à tous ! Je viens de commencer à apprendre Go après Python et C#, et j'ai un problème pour étendre la fonctionnalité des types intégrés. En Python, j'avais l'habitude de faire ceci : ```python # Python - monkey patching class MyInt(int): def is_even(self): return self % 2 == 0 print(MyInt(4).is_even()) # True ``` En C#, il y a les extension methods : ```csharp // C# Extension Method public static class IntExtensions { public static bool IsEven(this int value) { return value % 2 == 0; } } ``` Maintenant, j'essaie de faire la même chose en Go. Je veux ajouter une méthode `IsEven()` au type `int` pour vérifier si un nombre est pair. Voici ce que j'essaie : ```go package main import "fmt" // J'essaie d'étendre int func (i int) IsEven() bool { return i%2 == 0 } func main() { x := 4 fmt.Println(x.IsEven()) } ``` Le compilateur donne une erreur : "cannot define new methods on non-local type int". Je comprends que Go est plus strict avec les types, mais comment alors