Golang

Functions (1)

느리지만 꾸준하게 2021. 12. 11. 18:07

Go에는 많은 Type들이 있다. 여기를 참고해보자. 

 

곱셈 함수를 만들어보자. typescript에서 argument에 각각의 type을 설정해주듯이 go에서도 type을 설정해 주어야 한다.

// 아래 각각의 argument에다가 Type을 설정해주자.
package main
import "fmt"
func multiply(a , b )  {
	return a * b
}
func main() {
	fmt.Println(multiply(2, 2))
}
package main
import "fmt"

func multiply(a, b int)  {
	return a * b
    // 이렇게 하게 된다면 no result values expectedcompiler라고 뜨게 된다.
}
func main() {
	fmt.Println(multiply(2, 2))
    // multiply(2, 2) (no value) used as valuecompilerTooManyValues
}
// 이렇게 해야한다.
package main

import "fmt"

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

func main() {
	fmt.Println(multiply(2, 2))
}

그리고 go에서는 여러개의 return값을 받을 수가 있는데 하나 예시를 들어보자.

package main

import "strings"

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

func main() {
	
}

이처럼 go는 여러개의 package도 가지고 있다. 여기를 참고해보자.

package main

import (
	"fmt"
	"strings"
)

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

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

// 3 JAY

value값을 _을 이용해서 무시할 수도 있는데 아래와 같이 uppername을 무시했다.  

package main

import (
	"fmt"
	"strings"
)

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

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

// 3

단순히 반복하는 코드도 만들어보자.

package main

import "fmt"

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

func main() {
	repeatMe("nico", "lynn", "dal", "marl", "flynn")
}

// [nico lynn dal marl flynn]

 

 

 

 

 

 

 

 

 

 

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

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

 

Watch Now – 노마드 코더 Nomad Coders

 

nomadcoders.co

 

'Golang' 카테고리의 다른 글

if & switch  (0) 2021.12.12
for&range&args  (0) 2021.12.12
Functions (2)  (0) 2021.12.11
go: cannot find main module error  (0) 2021.12.11
Go 들어가기에 앞서 Building 내용  (0) 2021.12.11