본문 바로가기
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)  
}