示例函数的格式

go test特殊对待的第三种函数就是示例函数,它们的函数名以Example为前缀。它们既没有参数也没有返回值。标准格式如下:

  1. func ExampleName() {
  2. // ...
  3. }

示例函数示例

下面的代码是我们为Split函数编写的一个示例函数:

  1. func ExampleSplit() {
  2. fmt.Println(split.Split("a:b:c", ":"))
  3. fmt.Println(split.Split("沙河有沙又有河", "沙"))
  4. // Output:
  5. // [a b c]
  6. // [ 河有 又有河]
  7. }

为你的代码编写示例代码有如下三个用处:

  1. 示例函数能够作为文档直接使用,例如基于web的godoc中能把示例函数与对应的函数或包相关联。
  2. 示例函数只要包含了// Output:也是可以通过go test运行的可执行测试。

    1. split $ go test -run Example
    2. PASS
    3. ok github.com/Q1mi/studygo/code_demo/test_demo/split 0.006s
  3. 示例函数提供了可以直接运行的示例代码,可以直接在golang.orggodoc文档服务器上使用Go Playground运行示例代码。下图为strings.ToUpper函数在Playground的示例函数效果。18.5、示例函数 - 图1