본문 바로가기
언어/Go

Functions part Two

by gun_poo 2022. 2. 13.

naked return

package main

import (
	"fmt"
	"strings"
)

func lenAndUpper(name string) (length int, upper string) {
	length = len(name)
	upper = strings.ToUpper(name)
	return
}
func main() {
	totalLength, upper := lenAndUpper("name")
	fmt.Println(totalLength, upper)
}

return할 variable을 명시하지 않아도 함수 부분에 직접 넣어줄 수 있다


defer

  • function이 끝났을 때 추가적으로 무엇인가 동작 하게 할 수 있다.
package main

import (
	"fmt"
	"strings"
)

func lenAndUpper(name string) (length int, upper string) {
	defer fmt.Println("I'm done")
	length = len(name)
	upper = strings.ToUpper(name)
	return
}
func main() {
	totalLength, upper := lenAndUpper("name")
	fmt.Println(totalLength, upper)
}
I'm done
4 NAME

func main 함수에 lenAndUpper 함수가 실행되고

I'm done 이 출력이 되고

fmt.Println(totalLength, upper) 이 실행이 되면서
4 NAME 이 출력이 된다 

 

'언어 > Go' 카테고리의 다른 글

go test sample study  (0) 2022.07.21
If with a Twist  (0) 2022.02.13
for, range, ...args  (0) 2022.02.13
Functions part One  (0) 2022.02.13
Variables and Constants  (0) 2022.02.13

댓글