ホームページ >バックエンド開発 >Golang >Go のルーン文字は Unicode 文字の操作をどのように容易にするのですか?

Go のルーン文字は Unicode 文字の操作をどのように容易にするのですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-18 03:06:10986ブラウズ

How Do Runes in Go Facilitate Unicode Character Manipulation?

Go のルーンを理解する

Go では、ルーンは int32 のエイリアスです。最初は不可解に思えるかもしれませんが、言語による Unicode 文字の処理において特定の目的を果たします。

ルーン リテラルは、基本的に Unicode コードポイントを表す 32 ビットの整数値です。たとえば、「a」は実際には整数 97 です。これにより、コード内で Unicode 文字を直接表現できるようになり、文字の操作と比較に関連する操作が容易になります。

説明のために、関数 SwapRune:

を考えてみましょう。
func SwapRune(r rune) rune {
    switch {
    case 'a' <= r && r <= 'z':
        return r - 'a' + 'A'
    case 'A' <= r && r <= 'Z':
        return r - 'A' + 'a'
    default:
        return r
    }
}

この関数は文字の大文字と小文字を入れ替えます。 switch ステートメントは、文字が 'a' と 'z' または 'A' と 'Z' の間にあるかどうかを確認し、それに応じて計算を実行して交換を実行します。

switch ステートメントで使用される演算子については説明できます。次のように:

  • 'a' <= r && r <= 'z': 文字が 'a' と の間にあるかどうかを確認します。 'z'.
  • r - 'a' 'A': 文字から ASCII 値 'a' を減算し、ASCII 値 'A' を追加して大文字と等価になります。
  • 'A' <= r && r <= 'Z': 文字が 'A' と の間にあるかどうかをチェックします。 'Z'.
  • r - 'A' 'a': 文字から ASCII 値 'A' を減算し、ASCII 値 'a' を追加して小文字と等価になります。

SwapCase 関数内で、ルーン マッピングが使用されます:

func SwapCase(str string) string {
    return strings.Map(SwapRune, str)
}

この関数は

要約すると、Go のルーンは Unicode 文字を整数として便利に表現し、効率的かつ直感的な文字操作を可能にします。コードで比較します。

以上がGo のルーン文字は Unicode 文字の操作をどのように容易にするのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。