작성
·
183
답변 2
0
안녕하세요!
void는 반환을 안하겠다는겁니다.
그런데 값을 반환 하셨으니 에러가 나는겁니다.
Dart언어 첫번째 강의 함수에대해 한번 더 공부하시길 바랍니다.
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다.
제출하신 질문의 내용에 대해 답변드리겠습니다. 클래스의 메소드(return type이 void
인 메소드와 int
를 반환하는 메소드)에서 발생하는 문제에 대해 궁금하신 것 같습니다.
void
키워드는 해당 메소드가 어떠한 값을 반환하지 않음을 의미합니다. 즉, 메소드 내부에서 작업을 수행해도, 그 결과를 호출한 곳에 전달하지 않습니다. 반면 int
와 같이 특정 타입을 지정한 경우에는 해당 메소드가 그 타입의 값을 반환해야 함을 의미합니다.
질문하신 코드 상황에서 TimesTwo
클래스의 calculate
메소드는 int
타입의 값을 반환하려고 합니다. 메소드 정의에서 return type을 void
로 지정했으나 실제로는 int
값을 반환하려 하기 때문에 에러 메시지가 발생합니다. 이를 해결하기 위해서는 calculate
메소드의 선언부에서 반환 타입을 int
로 변경해야 합니다. 즉, void calculate()
가 아니라 int calculate()
로 수정해야 합니다.
강의에서 처음에는 값을 반환하지 않는 메소드를 보여주고, 이후에 값이 반환되는 메소드의 예시를 보여주며 void
대신 실제 반환 타입을 명시한 것입니다. 이러한 변경은 메소드의 목적과 반환해야 하는 결과 타입에 따라 결정됩니다.
질문하신 코드의 상황을 바탕으로, void
와 같이 특정 타입을 반환하지 않음을 명시하는 경우와 실제로 값을 반환해야 할 때 반환 타입을 명시하는 경우의 차이점을 이해하시는 것이 중요합니다.