J'ai toutefois trouvé un peu bizarre que la gestion du retour à la ligne ne soit pas fournie comme en C++ (avec std::endl). De fait, on doit faire attention à ce léger détail et différencier les cas selon les OS à la main, ce qui est assez dommage.
En C++, std::endl n'a pas grand chose à voir avec la gestion multi-plateforme du retour à la ligne. Un simple '\n' sera traduit par le bon retour à la ligne utilisé par la plateforme.
std::endl est identique à '\n' de ce point de vue, la différence est qu'il force un flush du buffer. Donc, il ne faut l'utiliser que si ce flush est désiré. Son nom est d'ailleurs à mon avis très mal choisi et amène à des codes inutilement lents quand un codeur pensant bien faire l'utilise pour écrire un fichier de sortie par petits fragments et au final perd tout le bénéfice du buffer de sortie.
Je ne connais pas Go mais à mon avis il y a de fortes chances pour que le '\n' soit correctement géré et donc s'adapte automatiquement à la plateforme.
# Retours à la ligne
Posté par beagf . En réponse à la dépêche Retour d'expérience sur Go. Évalué à 6.
En C++, std::endl n'a pas grand chose à voir avec la gestion multi-plateforme du retour à la ligne. Un simple '\n' sera traduit par le bon retour à la ligne utilisé par la plateforme.
std::endl est identique à '\n' de ce point de vue, la différence est qu'il force un flush du buffer. Donc, il ne faut l'utiliser que si ce flush est désiré. Son nom est d'ailleurs à mon avis très mal choisi et amène à des codes inutilement lents quand un codeur pensant bien faire l'utilise pour écrire un fichier de sortie par petits fragments et au final perd tout le bénéfice du buffer de sortie.
Je ne connais pas Go mais à mon avis il y a de fortes chances pour que le '\n' soit correctement géré et donc s'adapte automatiquement à la plateforme.