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

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

Barbara Streisand
リリース: 2024-12-18 03:06:10
オリジナル
976 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート