오늘은 오랜만에 Go언어에 대한 설명을 해볼 것이다.
Go는 무조건 loop문을 사용하는 방법은 for 명령어 밖에 없다.
for문은 아래처럼 매우 간단하게 정의할 수 있다.
for [for문 코드] {반복할 코드}
예를 들어, 숫자들을 받아서 모두 더하는 코드를 만들어보면 아래와 같다.
package main
import (
"fmt"
)
func AllAdd(num ...int) int {
var total int
for _, nums := range num {
fmt.Println(nums)
total += nums
}
return total
}
func main() {
total_result := AllAdd(1, 2, 3, 4, 5, 6, 7)
fmt.Println(total_result)
}
위 코드는 1~7까지 수를 더한 값을 출력한다.
AllAdd함수에 for문을 사용하여 total에 인자로 받은 num을 계속 할당하는걸 확인할 수 있다.
중간에 range 함수를 사용할 때, 왜 "_"를 사용하냐면, range는 index, 결과 값을 같이 반환기 때문에, index를 _를 넣어서 무시하게 만드는 것이다.
결과는 아래처럼 잘 나온는 걸 확인할 수 있다.
다른 방법으로는 index를 이용하는 방법이다.
함수 인자를 ...[something]으로 정의하면, something에 인자가 배열로 저장된다.
그래서 0부터 num의 길이까지의 인덱스를 각각 매겨서 total에 할당 해줄수 있다.
약간 C언어, Python의 for문처럼 사용하는 방식이다.
말이 어려우니 바로 코드를 확인해보자.
package main
import (
"fmt"
)
func AllAdd(num ...int) int {
var total int
for i := 0; i < len(num); i++ {
total += num[i]
}
return total
}
func main() {
total_result := AllAdd(1, 2, 3, 4, 5, 6, 7)
fmt.Println(total_result)
}
위는 range를 사용하지 않아서 index값을 따로 반환하지 않는다.
그래서 index를 상관하지 않는다.
결과를 확인하면 같은 결과 값을 확인할 수 있다.
두 방법 중 range는 간단할 것 같은데, index가 처리가 귀찮다.
그리고 i를 계속 증가시키며 num의 index를 이용하는 방법은 그냥 range보다 어려워 보이고, 귀찮은 부분도 있다.
결론 : 둘 중 비슷한 난이도라서, 그냥 편한걸로 사용하자.
'Go' 카테고리의 다른 글
[Go] Function 사용하기(func 사용) (0) | 2021.02.08 |
---|---|
[Go] 상수와 변수 선언(Variables and Constants) (0) | 2021.02.07 |
[Go] Package, import,func - hello go 출력하기 (기본문법) (0) | 2021.02.07 |
[Go] go 언어 VScode에 설치 및 사용 (0) | 2021.02.07 |