Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menukar Rentetan Hari Dalam Minggu kepada `time.Weekday` dalam Go?

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-31 04:38:30693semak imbas

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>

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>

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>

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!

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