Golang

for&range&args

느리지만 꾸준하게 2021. 12. 12. 00:24

go에는 JS처럼 for of / for in / map 등등이 필요없고 for 하나로 기능을 다한다.

 

for로 간단한 기능을 구현해 보자. range도 이용해서 array에 loop를 적용할 수 있도록 해준다.

package main

import (
	"fmt"
)

func superAdd(numbers ...int) int {
	fmt.Println(numbers)
	return 1
}

func main() {
	superAdd(1, 2, 3, 4, 5, 6)
}

// [1 2 3 4 5 6]

 

array에서 반복이 일어나도록 해보자. 조건에 따라서 반복 실행을 하도록 아래 코드를 짠다. 보면 range는 index를 주기 때문에 0 1 2 3 4 5로 나오게 된다. 

package main

import (
	"fmt"
)

func superAdd(numbers ...int) int {
	for number := range numbers {
		fmt.Println(number)
	}
	return 1

}

func main() {
	superAdd(1, 2, 3, 4, 5, 6)
}

// 0
// 1
// 2
// 3
// 4
// 5

number도 넣어서 보면 아래와 같다. 이렇게 range를 사용해서 loop를 만드는 방법을 볼 수 있다.

package main

import (
	"fmt"
)

func superAdd(numbers ...int) int {
	for index, number := range numbers {
		fmt.Println(index, number)
	}
	return 1

}

func main() {
	superAdd(1, 2, 3, 4, 5, 6)
}

// 0 1
// 1 2
// 2 3
// 3 4
// 4 5
// 5 6

아래와 같이 할 수도 있다. 

package main

import (
	"fmt"
)

func superAdd(numbers ...int) int {
	for i := 0; i < len(numbers); i++ {
		fmt.Println(numbers[i])
	}
	return 1

}

func main() {
	superAdd(1, 2, 3, 4, 5, 6)
}

// 1
// 2
// 3
// 4
// 5
// 6

모든 값을 합쳐보면 아래와 같다.

package main

import "fmt"

func superAdd(numbers ...int) int {
	total := 0
	for _, number := range numbers {
		total += number
	}
	return total

}

func main() {
	result := superAdd(1, 2, 3, 4, 5, 6)
	fmt.Println(result)
}

// 21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<출처 노마드 코더: 쉽고 빠른 Go 시작하기>

https://nomadcoders.co/go-for-beginners/lobby

 

Watch Now – 노마드 코더 Nomad Coders

 

nomadcoders.co

 

'Golang' 카테고리의 다른 글

Pointers  (0) 2021.12.12
if & switch  (0) 2021.12.12
Functions (2)  (0) 2021.12.11
Functions (1)  (0) 2021.12.11
go: cannot find main module error  (0) 2021.12.11