쉽고 빠른 Go 시작하기 - 1 (~1.3 Functions part One)

Melon Coder·2024년 5월 19일

Go

목록 보기
1/14

컴파일러는 package 이름이 main인 것부터 찾아내기 때문에 package의 이름을 main 으로 설정해야 컴파일할 수 있다. (파일 이름 == 패키지 이름)

그리고 함수가 존재해야 실행 가능하다.
ex.

func main() {}

fmt -> formatting을 위한 패키지

함수를 export 하고 싶으면 함수명을 대문자로 시작하면 된다.

변수

const (상수), var (변수)

const name string = "melon"
var age int = 23
// 축약 : 오로지 함수(func) 안에서만 가능하고 변수에만 적용 가능
name := "melon"
age := 23

함수

리턴하는 값의 타입도 다음과 같이 지정해주어야 한다.

func multiply(a int, b int) int {
	return a * b
}

매개변수 선언 시에 마지막 매개변수에만 타입을 지정해주면 앞에 있는 매개변수까지 지정한 타입으로 적용된다.

function multiply(a, b int) int {
	return a * b
}

또한, 함수를 호출하여 반환된 값을 가져오고 싶을 때 다음과 같이 할 수 있다.

func lenAndUpper(name string) (int, string) {
	return len(name), strings.ToUpper(name)
}

func main() {
	totalLength, upperName := lenAndUpper("melon")
}
    

그러나 고 언어는 까다롭게도 무엇인가를 만들고 사용하지 않으면 에러를 발생시킨다.
다음과 같이 사용하면 에러는 해결된다.

func main() {
	totalLength, upperName := lenAndUpper("melon")
}
fmt.Println(totalLength, upperName);

그리고 함수의 반환값 만큼 변수에 저장할 수 있는데, 두 가지의 반환값을 가진 함수에서 한가지 값만 가져오고 싶으면 다음과 같이 언더바 (_)를 활용하여 쓸 수 있다.

func main() {
	totalLength, _ := lenAndUpper("melon")
    fmt.Println(totalLength)
}

arguments

다음과 같이 함수에 여러 값을 넣고 함수를 실행하면 array 형태로 반환시켜준다.

func repeatMe(fruits ...string) {
	fmt.Println(fruits)
}

func main() {
	repeatMe("melon", "banana", "orange")
}

>>> [melon, banana, orange]

패키지

고언어에는 수많은 패키지들이 있다.
예를 들어, 자바스크립트의 toUpperCase() 라는 메소드를 사용하고 싶으면,
strings 패키지를 임포트하여 다음과 같이 쓸 수 있다.

strings.ToUpper(name)
profile
About me: https://resume-seven-beige.vercel.app/

0개의 댓글