Bagaimanakah Saya Menukar Rentetan Hari Minggu kepada masa. Hari Minggu dalam Pergi Dengan Cekap?

Linda Hamilton
Lepaskan: 2024-10-31 13:10:34
asal
161 orang telah melayarinya

How Do I Convert Weekday Strings to time.Weekday in Go Efficiently?

Menghuraikan Rentetan Hari Minggu ke dalam masa.Hari Minggu: Pendekatan Idiomatik dengan Peta

Menukar rentetan hari minggu menjadi masa yang sepadan.Nilai hari minggu dalam Go memerlukan penyelesaian tersuai kerana tiada fungsi terbina dalam untuk penukaran ini. Walaupun fungsi berasaskan tatasusunan yang dibentangkan menyediakan penyelesaian yang boleh dilaksanakan, pendekatan berasaskan peta menawarkan kelebihan dalam kecekapan dan fleksibiliti.

Penyelesaian Dipertingkatkan Menggunakan Peta

Daripada menggunakan tatasusunan, menggunakan peta dengan rentetan hari minggu sebagai kunci dan masa yang sepadan. Nilai hari minggu sebagai nilai mempercepatkan carian dan memudahkan kod dengan ketara:

<code class="go">var daysOfWeek = map[string]time.Weekday{
    "Sunday":    time.Sunday,
    "Monday":    time.Monday,
    "Tuesday":   time.Tuesday,
    "Wednesday": time.Wednesday,
    "Thursday":  time.Thursday,
    "Friday":    time.Friday,
    "Saturday":  time.Saturday,
}

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

Faedah Pendekatan Berasaskan Peta

  • Pencarian yang lebih pantas: Peta menyediakan masa carian O(1), menjadikannya lebih cekap daripada mengulangi tatasusunan.
  • Permulaan terus: Memulakan peta adalah lebih mudah, terutamanya apabila dilakukan dengan gelung for, seperti yang ditunjukkan dalam contoh ini:
<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

Meluaskan Peta untuk Input Tambahan

Pendekatan berasaskan peta ini juga membolehkan penambahan fleksibel nilai sah baharu yang boleh dihuraikan mengikut masa.Hari minggu. Contohnya, nama pendek 3 huruf hari kerja boleh disertakan dengan gelung ringkas:

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

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

Sambungan ini membenarkan menghuraikan kedua-dua nama penuh hari bekerja (mis., "Isnin") dan nama hari minggu pendek (mis., "Isnin ") ke masa.Hari Minggu.

Menggunakan peta dalam konteks ini menyediakan cara yang lebih pantas, lebih mudah dan boleh dilanjutkan untuk menghuraikan rentetan hari minggu ke masa. Nilai hari minggu dalam Go.

Atas ialah kandungan terperinci Bagaimanakah Saya Menukar Rentetan Hari Minggu kepada masa. Hari Minggu dalam Pergi Dengan Cekap?. 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!