Bagaimana untuk Menukar Rentetan Hari Dalam Minggu kepada `time.Weekday` dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-10-31 04:38:30
asal
713 orang telah melayarinya

How to Convert a Day of Week String to `time.Weekday` in Go?

Tukar Rentetan Hari Minggu kepada masa.Hari Minggu

Dalam Go, pakej masa tidak menawarkan fungsi terbina dalam untuk menukar rentetan yang mewakili hari dalam seminggu menjadi masa.Nilai hari minggu. Jadi, penyelesaian biasa ialah mencipta fungsi tersuai untuk melaksanakan penukaran ini.

Satu pendekatan ialah menggunakan tatasusunan untuk menyimpan nama hari bekerja dan masa yang sepadan.Nilai hari minggu. Walau bagaimanapun, penyelesaian yang lebih cekap dan idiomatik adalah dengan menggunakan peta.

Menggunakan Peta untuk Penukaran:

Peta menyediakan carian yang lebih pantas dan terus berbanding tatasusunan. Berikut ialah coretan yang menunjukkan pendekatan ini:

<code class="go">var daysOfWeek = map[string]time.Weekday{
    "Sunday":    time.Sunday,
    "Monday":    time.Monday,
    // ... and so on for all weekdays
}

func parseWeekday(v string) (time.Weekday, error) {
    if d, ok := daysOfWeek[v]; ok {
        return d, nil
    }

    return time.Sunday, fmt.Errorf("invalid weekday '%s'", v)
}</code>
Salin selepas log masuk

Memulakan Peta dengan Selamat:

Untuk memastikan pemulaan yang betul, anda boleh menggunakan gelung for untuk mengisi peta daysOfWeek:

<code class="go">var daysOfWeek = map[string]time.Weekday{}

func init() {
    for d := time.Sunday; d <= time.Saturday; d++ {
        daysOfWeek[d.String()] = d
    }
}</code>
Salin selepas log masuk

Memperluaskan Penukaran:

Penyelesaian berasaskan peta membolehkan sambungan mudah. Sebagai contoh, anda boleh menambah nama hari minggu pendek 3 huruf sebagai input yang sah:

<code class="go">func init() {
    // ... existing initialization code
    for d := time.Sunday; d <= time.Saturday; d++ {
        name := d.String()
        daysOfWeek[name] = d
        daysOfWeek[name[:3]] = d
    }
}</code>
Salin selepas log masuk

Kesimpulan:

Menggunakan peta untuk penukaran rentetan hari minggu dalam Go ialah kedua-duanya cekap dan fleksibel. Ia membolehkan carian mudah, permulaan selamat dan sambungan mudah untuk menampung format input alternatif.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Hari Dalam Minggu kepada `time.Weekday` dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!