[Go] Go 언어 예제와 기본 문법 정리 4탄
(반복문 for, 함수 func)
(Go 언어 버전 : 1.13.7, 글쓴날 : 2020.02.25)
* 이 글은 글쓴이가 공부한 내용을 정리하며 올리는 글입니다.
* 글의 내용은 공식 홈페이지 및 튜토리얼을 기반으로 공부하여 작성하였습니다.
* Go 언어가 처음이시라면 ☞ [Go] Go 언어 소개와 설치 및 컴파일 방법
* 1탄을 보고 싶으시다면 ☞ [Go] Go 언어 예제와 기본 문법 정리 1탄
* 2탄을 보고 싶으시다면 ☞ [Go] Go 언어 예제와 기본 문법 정리 2탄
* 3탄을 보고 싶으시다면 ☞ [Go] Go 언어 예제와 기본 문법 정리 3탄
Go 언어 기본 문법 정리
1) 반복문
Go 언어의 반복문은 단순합니다!
그 이유는 바로, 오직 for 키워드만을 사용하기 때문입니다.
(for each, for in, for of 등등 전부 없습니다. 심지어 while도 없습니다!!)
단순함을 좋아하는 저의 경우 반복문을 for 키워드만으로 표현한다는 것에 긍정적이지만, 이는 아마 개발자의 프로그래밍 스타일에 따라 호불호가 갈릴 Go 언어의 특성 중 하나이지 않을까 싶습니다.
기본적인 사용 방식은 다음과 같습니다.
(ex)
1
2
3
4
5
6
7
8
9
|
package main
import "fmt"
func main() {
for i := 0; i < 7; i++ {
fmt.Println("Hello, Minchan!")
}
}
|
이전 3탄의 조건문에서도 말씀드렸다시피, C 언어의 방식과 Python의 방식의 콜라보인 것 같습니다.
for 키워드를 사용하여 C 언어나 Java처럼 반복문을 쓰시되, Python과 같이 반복문 조건 표현식에 소괄호 ()를 쓰지 않으시면 됩니다.
while문을 사용하지 못해서 아쉬운 분들이 계신가요?
반복문에 조건만 남겨두어 for 키워드로 마치 while처럼 사용하실 수도 있습니다.
(ex)
1
2
3
4
5
6
7
8
9
10
11
|
package main
import "fmt"
func main() {
i := 0
for i < 7 {
fmt.Println("Hello, Minchan!")
i++
}
}
|
만약, 무한 루프를 표현하고 싶으시다면 조건 표현식 없이 for 키워드만 사용하시면 되겠습니다.
(ex)
1
2
3
4
5
6
7
8
9
|
package main
import "fmt"
func main() {
for {
fmt.Println("I can't stop!")
}
}
|
2) 함수
Go 언어의 함수 선언은 이전 예제들에서 보셨다시피, func 키워드를 사용합니다.
func + 함수명 + (인자의 이름 + 인자의 타입) + 반환값의 타입 {
함수 코드
}
의 형태로 선언하며, 반드시 함수의 인자의 타입(자료형)과 반환값의 타입(자료형)을 명시해 주어야 합니다.
그럼, 간단한 덧셈, 뺄셈 함수 예제들을 통해 자세히 알아보겠습니다.
(ex)
1
2
3
4
5
6
7
8
9
10
11
|
package main
import "fmt"
func add(num1 int, num2 int) int {
return num1 + num2
}
func main() {
fmt.Println(add(10, 5))
}
|
만약 함수 인자들의 타입(자료형)이 일치할 경우 마지막에 한번만 쓰셔도 됩니다.
(ex)
1
2
3
4
5
6
7
8
9
10
11
|
package main
import "fmt"
func add(num1, num2, num3 int) int {
return num1 + num2 + num3
}
func main() {
fmt.Println(add(10, 5, 1))
}
|
Go 언어의 함수는 기존 다른 언어들의 함수와 달리 두 개 이상의 값을 반환할 수 있습니다.
단, 이 경우에는 해당 반환값의 타입(자료형)을 각각 소괄호 () 안에 명시해주셔야 합니다.
(ex)
1
2
3
4
5
6
7
8
9
10
11
|
package main
import "fmt"
func addAndSub(num1, num2 int) (int, int) {
return num1 + num2, num1 - num2
}
func main() {
fmt.Println(addAndSub(10, 5))
}
|
마지막으로, Go 언어의 함수에는 또 다른 재밌는 기능이 있습니다.
그것은 바로 반환값의 타입에 이름을 부여하여 해당 함수 내에서 지역변수처럼 사용할 수 있는 기능입니다.
(반환값이 여러 개일 경우, 인자처럼 소괄호 () 안에 적어주셔야 합니다.)
이 경우, 이름이 부여된 반환값들은 return문 뒤에 명시하지 않더라도 자동으로 반환됩니다.
(ex)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package main
import "fmt"
func addAndSub(num1, num2 int) (add int, sub int) {
add = num1 + num2
sub = num1 - num2
return
}
func main() {
fmt.Println(addAndSub(10, 5))
}
|
여기까지 Go 언어 예제와 기본 문법 정리 4탄이었습니다.
이번 4탄에서는 Go 언어의 유일한 반복문 키워드인 for 그리고 함수 선언 시에 사용하는 키워드 func에 대하여 알아보았고, 이번 4탄을 끝으로 Go 언어의 기본 문법 정리 시리즈는 마무리하도록 하겠습니다.
하지만, 그렇다고 Go 언어 문법 공부가 끝나는 것은 아닙니다!!
다음부터는 좀 더 Go 언어의 특징적인 문법들에 대해 하나씩 하나씩 파헤쳐 정리해보도록 하겠습니다.
감사합니다!
'Deprecated' 카테고리의 다른 글
[Baekjoon Online Judge] 백준 2557번 Hello World(Python, Go) (0) | 2020.02.27 |
---|---|
[Troubleshooting] Go, Go 언어로 알고리즘 문제 풀 시 시간 초과하는 경우(버퍼로 입출력 구현하기) (0) | 2020.02.26 |
[React] React Hooks란 무엇인가? (2) | 2020.02.24 |
[Troubleshooting] React, create-react-app으로 프로젝트 시작 시 템플릿 생성이 안되는 문제 (0) | 2020.02.23 |
[Realm] Realm이란 무엇인가? (2) | 2020.02.22 |