강의

멘토링

로드맵

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

novellus님의 프로필 이미지
novellus

작성한 질문수

[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

상태 상위로 올리기

VoidCallback 뒤에 null 연산자 표기에 관한 질문

작성

·

16

0

null 연산자 표기에 관해 의문사항이 생겼습니다.

U&I 에서는 iconButton에 정의에 아래와 같이 적혀 있어 VoidCallback 뒤에 null 연산자를 표기하는 것으로 이해했습니다.

  • required void Function()? onPressed,

ElevatedButton 역시 위와 같이 정의되어 있지만 이번 강의에서는 표기가 안되있어서 기존에 작성했던 U&I 코드로 가 null 연산자를 제거해보니 정상적으로 동작하는 것을 확인했습니다.

null 연산자 관련 에러 로그가 없다면 표시를 생략해도 되는 것인지, 아니면 이와 상관없이 위젯 정의에 명시된대로 표기하는것이 권장사항인지 의문이 들어 질문드립니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. novellus님.

Flutter에서 버튼의 onPressed 속성과 같은 콜백을 정의할 때 null 가능성을 나타내기 위해 타입에 물음표(?)를 추가할 수 있습니다. 이는 해당 콜백이 null일 수도 있음을 의미합니다. 아래에 자세한 설명을 드리겠습니다.

  1. null 가능성과 물음표 사용:

    • 만약 VoidCallback?와 같이 물음표를 사용하면 그 콜백은 null일 수 있음을 나타냅니다. 이는 해당 콜백을 반드시 구현할 필요가 없을 때 유용합니다.
    • VoidCallback처럼 물음표 없이 사용할 경우, 그 콜백은 null이 아니어야만 합니다.
  2. 위젯의 정의에 따른 사용:

    • IconButton이나 ElevatedButton 등의 위젯에서는 기본적으로 onPressed가 null 가능하다는 가정을 하고 설계되었습니다. 즉, 만약 해당 콜백을 명시하지 않으면 버튼이 비활성화됩니다.
  3. 실제 사용 시:

    • null 연산자가 명시되지 않은 경우, 그리고 에러 로그가 발생하지 않는다면, 해당 시점에서는 null을 지정하지 않더라도 문제없이 동작할 수 있습니다.
    • 그러나, 코드의 명확성과 유지보수성을 위해서는 위젯의 정의에 따라 명시적으로 타입을 지정하는 것이 더 권장될 수 있습니다.

관련 질문 URL은 아래와 같습니다:
- null 연산자 관련 플러터에서의 사용에 관한 논의

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

novellus님의 프로필 이미지
novellus

작성한 질문수

질문하기