Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menjana Rentetan Rawak Unik dengan Panjang Tertentu dalam Go?

Bagaimana untuk Menjana Rentetan Rawak Unik dengan Panjang Tertentu dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-10-24 13:15:02418semak imbas

How to Generate Unique Random Strings of Specific Lengths in Go?

Menjana Rentetan Rawak Unik dengan Panjang Tertentu dalam Go

In Go, menjana rentetan rawak unik dalam julat panjang yang ditentukan memberikan tugas yang mudah. Walau bagaimanapun, memahami tahap keunikan yang diingini adalah penting.

UID Unik Sejagat

Jika keunikan global adalah satu keperluan, UUID (Pengecam Unik Sejagat) menawarkan penyelesaian yang mantap. UUID terdiri daripada nilai 128-bit, menyediakan sekumpulan besar kombinasi berpotensi. Untuk menjana UUID dalam Go, pertimbangkan pendekatan berikut:

<code class="go">import (
    "fmt"

    "github.com/google/uuid"
)

func main() {
    u := uuid.New()
    fmt.Println(u.String())
}</code>

Pseudo Random Strings

Untuk pilihan yang kurang unik secara universal, pakej crypto/rand Go menyediakan cara selamat untuk menjana bait rawak semu. Bait ini boleh ditukar kepada rentetan perenambelasan, menghasilkan rentetan pseudo-rawak.

<code class="go">package main

import (
    "crypto/rand"
    "fmt"
)

func main() {
    n := 10
    b := make([]byte, n)
    if _, err := rand.Read(b); err != nil {
        panic(err)
    }
    s := fmt.Sprintf("%X", b)
    fmt.Println(s)
}</code>

Pertimbangan Lain

  • Memaparkan UUID: UUID ialah nilai 128-bit yang biasanya dipaparkan dalam format heksadesimal, menghasilkan rentetan 32 aksara. Untuk perwakilan yang lebih padat, pertimbangkan untuk menggunakan pengekodan base64 atau URL-selamat.
  • Unicode Menyokong: Rentetan Go dikodkan dalam UTF-8, membenarkan kemasukan aksara Unikod. Ini membuka kemungkinan menggunakan set aksara Unicode yang meluas untuk meningkatkan kumpulan rentetan rawak yang berpotensi.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Rentetan Rawak Unik dengan Panjang Tertentu dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn