>  기사  >  백엔드 개발  >  Go에서 요일 문자열을 `time.Weekday`로 변환하는 방법은 무엇입니까?

Go에서 요일 문자열을 `time.Weekday`로 변환하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-31 04:38:30693검색

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

요일 문자열을 time.Weekday로 변환

Go에서 time 패키지는 변환하는 내장 함수를 제공하지 않습니다. 요일을 time.Weekday 값으로 나타내는 문자열입니다. 따라서 일반적인 해결책은 이 변환을 수행하는 사용자 정의 함수를 만드는 것입니다.

한 가지 접근 방식은 배열을 사용하여 요일 이름과 해당 시간.Weekday 값을 저장하는 것입니다. 그러나 더 효율적이고 관용적인 해결책은 지도를 활용하는 것입니다.

변환을 위해 지도 사용:

지도는 배열에 비해 더 빠르고 직접적인 조회를 제공합니다. 다음은 이 접근 방식을 보여주는 스니펫입니다.

<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>

맵을 안전하게 초기화:

올바른 초기화를 보장하려면 for 루프를 사용하여 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>

전환 확장:

지도 기반 솔루션을 사용하면 쉽게 확장할 수 있습니다. 예를 들어 3글자의 짧은 요일 이름을 유효한 입력으로 추가할 수 있습니다.

<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>

결론:

Go에서 요일 문자열 변환을 위해 맵을 사용하는 것은 둘 다입니다. 효율적이고 유연합니다. 대체 입력 형식을 수용하기 위한 쉬운 조회, 안전한 초기화 및 간단한 확장이 가능합니다.

위 내용은 Go에서 요일 문자열을 `time.Weekday`로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.