ホームページ > バックエンド開発 > Golang > Golang で特定の長さの範囲内で一意のランダムな文字列を生成するにはどうすればよいですか?

Golang で特定の長さの範囲内で一意のランダムな文字列を生成するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-24 12:29:31
オリジナル
794 人が閲覧しました

How Can I Generate Unique Random Strings Within a Specific Length Range in Golang?

Go を使用して長さの範囲内で一意のランダム文字列を生成するには?

Go で特定の長さの範囲内で一意のランダム文字列を生成するにはでは、次の要素を考慮してください:

一意性レベル:

  • 普遍的に一意: これには、UUID (Universally Unique Identifier) を使用する必要があります。 )。 UUID は、一意であることが保証されている 128 ビットの値です。 Go で UUID を生成するには、次のリソースを参照してください:

    • https://en.wikipedia.org/wiki/Universally_unique_identifier
    • https://godoc.org/github .com/google/uuid

表示形式:

  • 16 進数 (16 進数): 16 進形式で表示される UUID は 32 文字で構成されます。
  • Unicode: Unicode は幅広いコード ポイントを提供し、さまざまな言語でランダムな文字列を表示できます。 Go の文字列は UTF-8 でエンコードされており、Unicode 文字の使用が可能です。

実装:

  • UUID: 高度に一意なランダム文字列が必要な場合は、普遍的に一意である UUID を使用することをお勧めします。
  • 擬似ランダム文字列: より低いレベルの一意性の場合は、次のように使用できます。次のアプローチ:

    <code class="go">package main
    
    import (
        "crypto/rand"
        "fmt"
    )
    
    func main() {
        n := 10 // Length of the random string
        b := make([]byte, n)
        if _, err := rand.Read(b); err != nil {
            panic(err)
        }
        s := fmt.Sprintf("%X", b)
        fmt.Println(s)
    }</code>
    ログイン後にコピー

    このコードは長さ 10 のランダムな文字列を生成し、それを 16 進形式で出力します。

その他の考慮事項:

  • 追加情報については、次のリソースを参照してください:

    • https://godoc.org/github.com/google/uuid
    • https://stackoverflow.com/questions/22892120/how-to-generate-a-random-string-of-a-fixed-length-in-golang
    • https://stackoverflow.com/ questions/15582002/output-uuid-in-go-as-a-short-string

以上がGolang で特定の長さの範囲内で一意のランダムな文字列を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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