Je n'ai pas pu trouver de fonction intégrée pour cela (pour l'instant). Cependant, il existe une fonction reverse
exemple en aller efficace :
// Reverse a
for i, j := 0, len(a)-1; i < j; i, j = i+1, j-1 {
a[i], a[j] = a[j], a[i]
}
Cela ne fonctionnera pas si a
est de type string
Cependant, les chaînes de caractères sont immuables en Go. Martin Clayton résout ce problème en séparant et en joignant une chaîne de caractères donnée. La solution suivante est une solution alternative, qui ne fonctionne malheureusement que pour les chaînes ascii :
import "strings"
func Reverse(input string) string {
b := strings.Bytes(input);
for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
b[i], b[j] = b[j], b[i]
}
return string(b);
}
1 votes
D'après ce que je comprends, les solutions données ci-dessous ne fonctionnent pas avec les caractères précomposés ou combinés, comme le fait de donner
a+´
au lieu deá
. Je me demande comment on pourrait en tenir compte, sans le normaliser.0 votes
Si vous n'arrivez pas à vous y retrouver dans un grand nombre de réponses similaires, vérifiez mon point de référence .
2 votes
Pour les chaînes de caractères qui sont pas simple, voir stackoverflow.com/a/62743214/6309
1 votes
Il semble que quelque chose d'apparemment si difficile devrait être dans la bibliothèque standard... mais c'est juste une autre chose laissée de côté.
0 votes
Comme l'a noté @dolmen, de nombreuses réponses ne sont pas très bonnes. Je suggère au lecteur de vérifier stackoverflow.com/questions/53244824/ Je vote également pour fermer cette question en tant que dup. Ce n'est pas génial pour les moteurs de recherche, mais l'exactitude semble plus importante (le dernier pst peut aussi être renommé).
0 votes
Cela répond-il à votre question ? Comment manipuler les chaînes de caractères dans GO pour les inverser ?