Comme je viens d'un environnement C et C++ et que golang est sémantiquement différent, j'ai quelques discussions sur les noms de fonctions "New" et "Open" et sur ce que le programmeur attend de ce qui se passe sous le capot. J'ai créé un paquet où la fonction New ouvre des descripteurs de fichiers vers des fichiers temporaires. Je ne suis pas sûr que ce comportement soit prévu pour les API écrites en Go.
Voici un extrait :
// Not directly convenient New allocates file descriptors
deb := New()
deb.AddFile("/tmp/myfile")
deb.Write("/tmp/mypackage.deb")
deb.Close()
// Idiomatic it opens file descriptors but we have to provide context to open
info := &Props{Name: "mypackage"}
deb := info.Open("/tmp/mypackage.deb")
deb.AddFile("/tmp/myfile")
deb.Close()