Go語言 :使用簡單的 for 迭代語句進行 TDD 驅動測試開發與 benchmark 基準測試

2023-03-19 15:01:19
 
在 Go 中 for 用來回圈和迭代,
Go 語言沒有 whiledountil 這幾個關鍵字,我們只能使用 for。這也算是件好事!
讓我們來為一個重複字元 5 次的函數編寫測試。

先編寫測試用例

package iteration

import "testing"

func TestRepeat(t *testing.T) {
    repeated := Repeat("a")
    expected := "aaaaa"

    if repeated != expected {
        t.Errorf("expected '%q' but got '%q'", expected, repeated)
    }
}

先使用最少的程式碼來讓測試先跑起來

package iteration

func Repeat(character string) string {
    return ""
}

 

 把程式碼補充完整,使得它能夠通過測試

func Repeat(character string) string {
    var repeated string
    for i := 0; i < 5; i++ {
        repeated = repeated + character
    }
    return repeated
}

就像大多數類 C 的語言一樣,for 語法很不起眼。

與其它語言如 C,Java 或 JavaScript 不同,在 Go 中 for 語句前導條件部分並沒有圓括號,而且大括號 { } 是必須的。你可能會好奇下面這行

    var repeated string

我們目前都是使用 := 來宣告和初始化變數。然後 := 只是簡寫(簡短模式定義看這裡