인프런 커뮤니티 질문&답변

smsmzun님의 프로필 이미지
smsmzun

작성한 질문수

UIKit - iOS14 실무 가이드 <iOS앱 진짜 개발자 되기>

Function_2

func displayCalc 부분에서의 질문입니다.

작성

·

225

0

선생님 함수를 받는 함수 부분에서 질문이 있습니다.
함수의 리턴값에 대해서 제대로 이해가 안된 것 같습니다.
 
제가 이해한 함수는 함수이름, 매개변수, 리턴타입, 실행구문, 리턴값이 있어야 하는걸로 알고 있는데 세가지 궁금한 점 여쭤보고싶었습니다 ㅠ
1. 10분 10초 부분에 38번줄 함수는 왜 리턴값이 없나요?
 
2. 함수를 38번줄 함수가 함수를 받는 함수라서 받아오는 함수 (예: plus)에 리턴값이 있기 때문에 굳이 리턴값을 안넣어도 되는건가요?
 
3. func easycalc (result: ((Int , Int) -> Int)) -> String {

    return "결과 : \(result(a,b))"

}

제가 이해한 대로라면 이렇게 썼을 것 같은데 이 문장은 틀린 문장인가요?

답변 1

1

iOS Developer - 이정님의 프로필 이미지
iOS Developer - 이정
지식공유자

안녕하세요

 

calc함수 내부에서만 로직처리가 끝나면 리턴이 필요 없습니다. 

반대로 calc함수를 통해 나온 결과값으로 뭔가를 하고 싶으면 리턴이 필요하겠죠.

 

 
func easycalc (result: ((Int , Int) -> Int)) -> String {

    return "결과 : \(result(a,b))"

}

질문에 쓰신 함수를 보면 리턴이 있기 때문에 아래처럼 함수결과를 변수로 받거나 하는등 결과로 뭔가를 할 수 있습니다.

var calcResult = easycalc(result: plus)

easycalc 함수에 리턴이 없다면 위처럼 결과를 받아오는건 안되겠죠.

 

함수에서 리턴을 사용할지 안할지 판단은

함수에서 나오는 값으로 처리를 할건지

함수 내부에서만 값을 처리할건지로 구분하시면 될 것 같습니다.

 

 

 

smsmzun님의 프로필 이미지
smsmzun
질문자

답변 감사합니다!

smsmzun님의 프로필 이미지
smsmzun

작성한 질문수

질문하기