Go에서 반복적인 작업을 하기 위해서는 for가 필요하다. Go에는 while, do, until 같은 키워드가 없고 오직 for만 사용할 수 있다. 그건 좋은 일이다.
문자를 5번 반복하는 함수를 위한 테스트를 작성해 보자.
여기까지는 새로운 게 없으니, 연습 삼아 작성할 것이다.
먼저 테스트를 작성
packageiterationimport"testing"funcTestRepeat(t*testing.T){repeated:=Repeat("a")expected:="aaaaa"ifrepeated!=expected{t.Errorf("expected %q but got %q",expected,repeated)}}
테스트 시도 및 실행
./repeat_test.go:6:14: undefined: Repeat
테스트를 실행하기 위한 약간의 코드를 작성하고 실패하는 테스트 출력을 확인
수련을 계속 하자! 테스트 실패가 적절하게 된 것인지에 대해서 지금 당장 어떤 것도 새로 알려고 할 필요가 없다.
컴파일될 수 있게 해서 작성한 테스트가 잘 작성되었는지 확인 하는 것으로 충분하다.
기본적인 문제에 대해서 테스트를 작성할 정도로 Go를 이미 알고 있는거로 괜찮지 않을까? 즉, 이제 프로덕션 코드를 하고 싶은 대로 작성할 수 있고 원하는 동작이 잘 동작하는지 알 수 있다.
repeat_test.go:10: expected 'aaaaa' but got ''
테스트를 통과할 수 있는 충분한 코드 작성
for 문법은 대체로 C와 비슷한 언어들이 따르는 매우 평범한 형태이다.
C, Java 또는 JavaScript 같은 다른 언어들과 달리 세 개의 컴포넌트를 둘러싼 괄호가 없고 중괄호 { }가 항상 필요하다. 행에서 무슨 일이 발생하고 있는지 궁금할 것이다.
변수를 초기화하고 선언하기 위해서 :=를 사용해 왔다. 그러나 :=는 두 단계를 간단하게 줄여 준다. 여기에서는 string 변수만 선언하고 있다. 그래서 명시적 버전이다. var를 사용해서 함수를 선언할 수도 있다는 걸 나중에 보게 될 것이다.