摘要: 每一个并非的执行单元叫作一个goroutine.设想这里的一个程序有两个函数,一个函数做计算,另一个输出结果,假设两个函数没有相互之间的调用关系。一个线性的程序会先调用其中的一个函数,然后再调用另一个。如果程序中包含多个goroutine,对两个函数的调用规则可能发生再同一时刻。马上就会看到这样的一 阅读全文
posted @ 2022-03-01 15:49 我在路上回头看 阅读(47) 评论(0) 推荐(0)
摘要: 类型断言是一个使用在接口值上的操作。语法上它看起来像x.(T)被成为断言类型,这里x表示一个接口的类型和T表示一个类型。一个类型断言检查它操作对象的动态类型是否和断言的类型匹配。 这里有两种可能。 第一种,如果断言的类型T是一个具体类型,然后类型断言检查x的动态类型是否和T相同。如果这个检查成功了, 阅读全文
posted @ 2022-03-01 15:07 我在路上回头看 阅读(195) 评论(0) 推荐(0)
摘要: // 实际上它是interface类型,这个类型有一个返回错误信息的单一方法: type error interface{ Error() string } 创建一个error最简单的方法就是调用errors.New函数,它会根据传入的错误信息返回一个新的error。整个errors包仅只有4行: 阅读全文
posted @ 2022-03-01 14:03 我在路上回头看 阅读(111) 评论(0) 推荐(0)
摘要: // 示例 // net/http package http type Handler interface{ ServeHTTP(w ResponseWriter, r *Request) } func ListenAndServe(address string, h Handler) error 阅读全文
posted @ 2022-03-01 13:47 我在路上回头看 阅读(161) 评论(0) 推荐(0)
摘要: 一个内置的排序算法需要知道三个东西:序列的长度,表示两个元素比较的结果,一种交换两个元素的方式;这就是sort.Interface的三个方法: package sort type Interface interface{ Len() int Less(i, j int) bool Swap(i, j 阅读全文
posted @ 2022-03-01 10:53 我在路上回头看 阅读(68) 评论(0) 推荐(0)