GO
3. Function
good_cow
2021. 1. 4. 22:23
함수 파라미터의 타입 명시
func multiply(a, b int) result int{
return a * b
// a,b 모두 int 타입으로 인식
}
둘 이상의 return 지원
package main
import "fmt"
import "strings"
func doSomething(name string) (length int, upper string) {
length = len(name)
upper = strings.ToUpper(name)
return length, upper
}
func main(){
length, upper := doSomething("kim")
fmt.Println(length, upper)
}
// 3 KIM
Naked Return_
Go는 return 타입을 꼭 명시할 필요가 없다. (물론 명시해도 된다)
package main
import "fmt"
import "strings"
func doSomething(name string) (length int, upper string) {
length = len(name)
upper = strings.ToUpper(name)
return
}
func main(){
length, upper := doSomething("kim")
fmt.Println(length, upper)
}
// 3 KIM
defer
함수가 끝났을 때, 추가로 무언가를 실행시킬 수 있다. (콜백함수 느낌인듯?)
package main
import "fmt"
import "strings"
func doSomething(name string) (length int, upper string) {
defer fmt.Println("function done")
length = len(name)
upper = strings.ToUpper(name)
return
}
func main(){
length, upper := doSomething("kim")
fmt.Println(length, upper)
}
// function done
// 3 KIM