Go语言学习日志 2

58 阅读1分钟

多返回值

在刚入学学习C语言时,有时候便会希望函数支持多返回值,这样可以更方便。go语言就支持,通过多返回值机制,函数可以同时返回多个不同类型的值,而不仅仅是单个值。这使得Go语言在处理多种情况和错误处理时非常灵活和方便。

func findLinks(url string) ([]string, error)

通过多返回值,将错误处理实现的十分优雅,而不需要通过全局变量或引用参数来实现。我想,这也是Go语言在处理一些特定问题时简洁高效的原因之一。

go test

和JAVA类型,Go也有类似于JUnit的用于运行和执行Go语言项目中的测试代码。

  1. 测试文件的命名:测试文件的名称必须以 _test.go 结尾。例如,如果你想为 a.go 编写测试,则测试文件应该命名为 a_test.go
  2. 测试函数的命名:测试函数必须以 Test 开头,后跟要测试的函数名。例如,要测试函数 Add(),则测试函数应命名为 TestAdd()
  3. 使用 testing 包:在测试文件中,必须导入 testing 包,并在测试函数的签名中接受 *testing.T 参数。
func TestName(t *testing.T) {
    // ...
}

Channels

Go语言在并发之间相互通信十分容易,通过Channels,Go语言中用于在不同Goroutine之间进行通信和同步的一种机制。它是在多个Goroutine之间传递数据的管道。

ch := make(chan Type)

通过<-运算符进行数据的发送和接收。例如,ch <- data表示将数据data发送到通道ch,而data := <-ch表示从通道ch接收数据并存储在变量data中。