300x250
반응형
함수도 변수처럼 타입을 뒤에 선언
func multip(a int, b int) int { //둘다 같은 타입이면 (a, b int) 이렇게도 가능
return a * b
}
func main() {
fmt.Println(multip(3, 2))
}
리턴 여러개 가능
func multip(name string) (int, string) {
return len(name), strings.ToUpper(name)
}
func main() {
fmt.Println(multip("thesse")) // 바로 출력하면 4 thesse 이렇게 나옴
len, name := multip("ssong") //값으로 받을때도 변수 return개수만큼
// fmt.Println(name) //ssong
fmt.Println(len) //4
len, _ := multip("ssong") //언더바 쓰면 리턴값 무시하고 하나만 받을 수 있음
}
매개변수 개수지정안하기 가능
func repeatMe(name ...string) { //타입 앞에 ... 점세개
fmt.Println(name)
}
func main() {
repeatMe("aaa", "bbb", "ccc", "fff") // 결과 [aaa bbb ccc fff]
}
naked return
func lenUpper(name string) (leng int, upper string) { //return 타입 지정할때 이름 명명
leng = len(name)
upper = strings.ToUpper(name)
return // 위에서 넣어줬으므로 return 뒤에 뭐 안씀
}
func main() {
fmt.Println(lenUpper("thesse")) // 4 THESSE
}
// 네이키드 리턴 하려면 리턴값 한개여도 괄호 쳐줘야함
func lenname(name string) (lenret int) {
lenret = len(name)
return
}
defer : 함수 종료 후 실행할 일 지정
func lenUpper(name string) (leng int, upper string) {
defer fmt.Println("lenUpper done") // 리턴값 반환 후 실행
leng = len(name)
upper = strings.ToUpper(name)
return
}
func main() {
fmt.Println(lenUpper("thesse"))
}
// 실행결과
// lenUpper done
// 4 THESSE
300x250
반응형
'IT' 카테고리의 다른 글
go 포인터 (0) | 2021.05.13 |
---|---|
go 반복문, 조건문 (0) | 2021.05.13 |
go 변수 선언 (0) | 2021.05.13 |
node.js 설치 (윈도우) (0) | 2021.05.12 |
firebase 에러 : Could not reach Cloud Firestore backend. permission denied (0) | 2021.05.04 |