2023年8月5日

摘要: 练习说明里面讲得很清楚了,实现前一节中Image的三个接口即可,这个Exercise明白Go的接口实现即可完成。主要代码如下: 1 type Image struct{} 2 3 func (Image) ColorModel() color.Model { 4 return color.RGBAM 阅读全文
posted @ 2023-08-05 23:38 熋霸 阅读(21) 评论(0) 推荐(0) 编辑
 
摘要: rot13是英文字母加密里面Caesar Cipher(其实就是移位加密)的一种特殊形式,简单来说就是把字母前后部分对调,其中a和n对调,以此类推。针对性的简单来做就是直接判断字母所在范围,然后视情况+/-13即可。但是rot13也可以用Caesar Cipher的通用形式来做,移位的公式其实很简单 阅读全文
posted @ 2023-08-05 23:12 熋霸 阅读(32) 评论(0) 推荐(0) 编辑
 
摘要: 这个练习说明是实现接口Read,返回一个无限的字母‘A’字符流。接口Read的调用,通过error为io.EOF来判定数据流结尾。那么往slice里面一直写‘A’,error里面一直写nil不就是没有io.EOF了,所以就是无限字母‘A’的字符流了。主要代码如下: 1 type MyReader s 阅读全文
posted @ 2023-08-05 21:55 熋霸 阅读(10) 评论(0) 推荐(0) 编辑
 
摘要: Go的接口+Error使用练习,正好里面还引入了一个小知识点,不要在Error()实现里面用Sprint一个实现了Error()的类型,因为Sprint里面会调用类型的Error(),无限循环。主要代码如下: 1 type ErrNegativeSqrt float64 2 3 func (e Er 阅读全文
posted @ 2023-08-05 11:54 熋霸 阅读(10) 评论(0) 推荐(0) 编辑
 
摘要: 牛顿迭代法求平方根,Go的tour一上来就搞一个这么高级的练习,吓到我了。不过还好练习说明里面给出了逼近公式,主要代码如下: 1 func Sqrt(x float64) float64 { 2 e, z := 1e-15, 1.0 3 for math.Abs(z*z - x) > e { 4 z 阅读全文
posted @ 2023-08-05 00:20 熋霸 阅读(17) 评论(0) 推荐(0) 编辑