欢迎光临
感谢一路有你

学习go语言Day4

如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
 

测试

学习错误处理和测试框架,可以编写简单的单元测试。
Go语言中的错误处理和测试框架主要可以学习以下两方面:

  1. 错误处理
  • Go通过返回错误值来表示错误。
  • 可以通过errors.New构造错误对象。
  • 使用if err != nil来判断错误。
  • 利用errors.Is、Wrap等处理错误栈。
  • panic/recover处理异常。
  1. 测试框架
  • testing包提供测试功能。
  • 测试文件命名以_test.go结尾。
  • 测试函数名前缀为Test。
  • 使用testing.T运行测试用例。
  • 使用testing.B执行基准测试。
  • 使用assert系列方法进行断言。
  • 测试覆盖率使用testing/cover。
    一个简单的单元测试样例:

<code class="language-go">func TestAdd(t *testing.T) {
  total := Add(1, 2)
  if total != 3 {
    t.Errorf(&quot;Add(1, 2) failed&quot;)
  }
}
</code>

学习利用错误处理和测试可以提高代码质量和可靠性。

并发

学习goroutine和channel的使用,编写简单的并发程序。
Go语言中goroutine和channel主要用于实现Go的并发编程,主要用法如下:

  1. goroutine

使用go语句可以启动一个goroutine执行函数:


<code class="language-go">go func() {
  // 并发执行的函数
}()
</code>
  1. channel

channel用于goroutine之间的通信和数据传递:


<code class="language-go">ch := make(chan int)

ch &lt;- 10 // 发送数据
x := &lt;- ch // 接收数据
</code>
  1. 示例

<code class="language-go">func sum(s []int, ch chan int) {
  total := 0
  for _, v := range s {
    total += v
  }
  ch &lt;- total // 将sum发送到channel
}

func main() {
  s := []int{1,2,3}
  ch := make(chan int)
  go sum(s[:len(s)/2], ch)
  go sum(s[len(s)/2:], ch)
  x, y := &lt;-ch, &lt;-ch // 从channel接收

  println(x + y)
}
</code>

上面示例通过channel实现了两个goroutine之间的数据通信。

熟练掌握goroutine和channel的使用,是Go并发编程的关键。

这周不再更新,后面改变方案,学习gin

赞(0) 打赏
未经允许不得转载:王明昌博客 » 学习go语言Day4
分享到: 更多 (0)

相关推荐

  • 暂无文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

×
订阅图标按钮