요일 문자열을 시간으로 구문 분석합니다.Weekday: 맵을 사용한 관용적 접근 방식
요일 문자열을 해당 시간으로 변환합니다. Go에는 이 변환을 위한 내장 기능이 없기 때문에 맞춤형 솔루션이 필요합니다. 제시된 배열 기반 기능은 실행 가능한 솔루션을 제공하지만 맵 기반 접근 방식은 효율성과 유연성 측면에서 이점을 제공합니다.
맵을 사용하는 향상된 솔루션
주중 문자열을 키로 사용하는 지도와 해당 시간을 활용하는 배열입니다. 주중 값을 값으로 사용하면 조회 속도가 크게 향상되고 코드가 단순화됩니다.
<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>
지도 기반 접근 방식의 이점
<code class="go">var daysOfWeek = map[string]time.Weekday{} func init() { for d := time.Sunday; d <= time.Saturday; d++ { daysOfWeek[d.String()] = d } }</code>
추가 입력을 위해 맵 확장
이 지도 기반 접근 방식을 사용하면 time.Weekday로 구문 분석할 수 있는 새로운 유효한 값을 유연하게 추가할 수 있습니다. 예를 들어, 간단한 3글자 요일 이름을 간단한 루프로 포함할 수 있습니다:
<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>
이 확장을 사용하면 전체 요일 이름(예: "월요일")과 짧은 요일 이름(예: "월")을 모두 구문 분석할 수 있습니다. ")를 time.Weekday.
이러한 맥락에서 지도를 사용하면 Go에서 평일 문자열을 time.Weekday 값으로 구문 분석하는 더 빠르고 편리하며 확장 가능한 방법이 제공됩니다.
위 내용은 Go에서 Weekday 문자열을 time.Weekday로 어떻게 효율적으로 변환합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!