Go언어/Go언어 예제
paintNeeded함수에서 다중 반환 값 사용하기
by 현준의코딩
2023. 10. 29.
- 에러 값은 문제가 없는 경우 nil로 설정되며, 에러가 발생한 경우에는 해당 에러값으로 설정됨.
- paintNeeded라는 함수를 만들어 예를 들건데, 먼저 float64와 error 타입으로 두 개의 반환 타입을 선언한다. 그 다음 함수 블록 내에서 가장 먼저 해야 할 일은 매개변수의 유효성을 검증하는 일이다.
- width, height 중 하나라도 0보다 작은 경우네는 페인트의 양으로 0이라는 값과 함께 fmt.Errorf를 사용해 생성한 에러 값을 반환한다. 함수의 시작 부분에서 매개변수의 유효성을 검증하고, 유효하지 않은 값들이라 판단되면 return을 사용해 에러 반환 후 함수를 빠져나온다.
package main
import "fmt"
func paintNeeded(width float64, height float64) (float64, error) {
if width < 0 { // 너비 값이 유효하지 않은 경우 0과 에러를 반환함.
return 0, fmt.Errorf("a width of %0.2f is invaild", width)
}
if height < 0 { // 높 값이 유효하지 않은 경우 0과 에러를 반환함.
return 0, fmt.Errorf("a height of %0.2f is invaild", height)
}
area := width \* height
return area / 10.0, nil // 아무 이상이 없으면 없다고 알려주기 위해 nil 반환
}
func main() {
amount, err := paintNeeded(4.2, -3.0) // err에 height 보냄.
fmt.Println(err)
fmt.Printf("0.2f liter needed\\n", amount)
}