Go の文字列は、文字シーケンスではなくバイト ベクトルです。この区別は、言語内の文字列を逆にしようとするときに問題を引き起こします。次のコード スニペットは、Go で文字列を反転する基本的なアプローチを示しています。
<code class="go">import ( "fmt" "rand" "time" ) func invert() { var c = "A" var strs, aux string rand.Seed(time.Now().UnixNano()) // Generate 5 strings with random characters of sizes 100, 200, 300, 400 and 500 for i := 1; i < 6; i++ { strs = randomString(i * 100) fmt.Print(strs) for i2, j := 0, len(strs); i2 < j; i2, j = i+1, j-1 { aux = strs[i2] strs[i2] = strs[j] strs[j] = aux } } }</code>
ただし、結合文字 (他の文字を変更することを目的とした Unicode 文字) を処理すると、反転プロセスが複雑になります。これに対処するには、Andrew Sellers によって提案されたアプローチを検討してください。これには次のことが含まれます。
このアプローチにより、CDM 文字の適切な順序が保持され、絵文字を含む複雑な文字列の正確な反転が保証されます。およびその他の組み合わせ要素。
以上がGo で発音区別記号の結合順序を維持しながら文字列を反転するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。