《Go语言圣经》 练习 4.10

该博客介绍了一种方法,通过Go语言修改GitHub issues程序,根据问题的创建时间将其分类为不到一个月、不到一年和超过一年三类。通过获取过去一个月和一年的时刻点,遍历items并将其分配到相应的类别中,从而实现更有效的issue管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

练习 4.10: 修改issues程序,根据问题的时间进行分类,比如不到一个月的、不到一年的、超过一年。

思路:

  1. 获取A一年前的时刻,B一月前的时刻
  2. 过滤创建时间在B后、A后、A前面 的三种item
  3. 分别将item加入对应的slice
func main() {
	// **练习 4.10:**
	//修改issues程序,根据问题的时间进行分类,比如不到一个月的、不到一年的、超过一年。

	// 获取过去一个月的时间,判断createtime是否在那个时间之后,在,就是不到一个月的
	mbefore := time.Now().AddDate(0, -1, 0) // 一个月前
	ybefore := time.Now().AddDate(-1, 0, 0) // 一年前的时间

	monbefore := []*Issue{}
	yeabefore := []*Issue{}
	yeaafter := []*Issue{}

	result, err := SearchIssues(os.Args[1:])
	if err != nil {
		log.Fatalf("解析错误 : %s", err)
	}

	// 遍历所有items
	for _, item := range result.Items {
		//时间
		// fmt.Printf("item.CreatedAt: %v\n", item.CreatedAt)
		if mbefore.Before(item.CreatedAt) { // 创建时间不到一个月
			// fmt.Println("一月:\t ", item.CreatedAt)
			monbefore = append(monbefore, item)
		} else if ybefore.Before(item.CreatedAt) { //创建时间不到一年
			// fmt.Println("不到一年:\t", item.CreatedAt)
			yeabefore = append(yeabefore, item)
		} else if ybefore.After(item.CreatedAt) { // 创建时间超过一年
			// fmt.Println("超过:\t", item.CreatedAt)
			yeaafter = append(yeaafter, item)
		}
	}
}

Go语言圣经》是一本广受好评的教材,旨在帮助读者系统地学习和掌握Go语言。这本书以简明清晰的方式介绍了Go语言的各种特性、语法和用法,是入门和进阶者的理想选择。 首先,该书提供了对Go语言基础知识的全面介绍。它从简单到复杂地解释了Go语言的基本概念,诸如变量、函数、循环和条件语句等等。通过丰富的例子和练习,读者能够逐步理解和掌握这些概念。 其次,该书详细介绍了Go语言的高级特性和用法。读者可以学习到Go语言的面向对象编程、并发编程、网络编程等关键技术。并发编程是Go语言的一个独特特性,对于提高程序性能和扩展能力非常重要。 此外,该书还包含了对常见问题和陷阱的讲解,帮助读者避免一些常见的错误和陷阱。同时,书中提供了大量的案例和实践项目,读者可以通过实际操作来巩固所学内容。 《Go语言圣经》以其简洁明了的风格和对细节的深入讲解而闻名。无论是作为初学者的入门指南,还是作为有经验的开发者的参考书,这本书都能满足读者的需求。此外,该书的PDF版本能够方便地在线或离线阅读,为读者提供了更加便捷的学习体验。 综上所述,《Go语言圣经》是一本内容丰富、权威性强的优秀教材。它不仅适合Go语言的初学者,也适用于那些想要深入学习和掌握Go语言的开发者。无论是在线阅读还是PDF版本,读者都能够方便地获取和利用这本宝贵的学习资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值