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

고영환님의 프로필 이미지
고영환

작성한 질문수

[코드팩토리] [입문] Dart 언어 4시간만에 완전정복

Dart #2 Object Oriented Programming 객체지향 프로그래밍

밑에 질문 사진첨부해서 다시 질문드려요~

작성

·

183

0

아이돌로 설명할때 ...클래스 안에서 함수 넣을때 처음엔 앞에 void를 넣으셨는데  뒤에 강의에서는 TimesTwo클래스에서는  void 를 안쓰고 바로 int 를 쓰시더라구요 void는 에러가 저렇게 나네요 왜 그런거죠...?질문.jpg

답변 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와 같이 특정 타입을 반환하지 않음을 명시하는 경우와 실제로 값을 반환해야 할 때 반환 타입을 명시하는 경우의 차이점을 이해하시는 것이 중요합니다.

The image displays a computer screen with multiple windows open, primarily showing a code editing environment and a web browser

고영환님의 프로필 이미지
고영환

작성한 질문수

질문하기