栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从字符串获取整数月份值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从字符串获取整数月份值

前言:
我在中发布了此实用程序

github.com/icza/gox
,请参见
timex.ParseMonth()


这是目前最好的方法。

最好的方法是使用包级变量,并且仅填充一次地图。

通过这种方式进行人口调查更加干净和安全:

var months = map[string]time.Month{}func init() {    for i := time.January; i <= time.December; i++ {        months[i.String()] = i    }}

测试它:

for _, s := range []string{"January", "December", "invalid"} {    m := months[s]    fmt.Println(int(m), m)}

输出(在Go Playground上尝试):

1 January12 December0 %!Month(0)

请注意,此映射具有灵活性,您可以添加短月份名称,以映射到同一月份。例如,您也可以添加

months["Jan"] =time.January
,因此,如果您的输入是
"Jan"
,您也可以获取
time.January
。可以通过在同一循环中对长名称进行切片来轻松完成此操作,例如:

for i := time.January; i <= time.December; i++ {    name := i.String()    months[name] = i    months[name[:3]] = i}

另请注意,可以

time.Parse()
在布局字符串为的地方进行解析
"January"

for _, s := range []string{"January", "December", "invalid"} {    t, err := time.Parse("January", s)    m := t.Month()    fmt.Println(int(m), m, err)}

哪些输出(在Go Playground上尝试):

1 January <nil>12 December <nil>1 January parsing time "invalid" as "January": cannot parse "invalid" as "January"

但是,简单的地图查找在性能上胜于此。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/469039.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号