IT

go 함수 선언

thesse 2021. 5. 13. 10:04
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