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

강원빈님의 프로필 이미지
강원빈

작성한 질문수

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

상태를 트리의 위로!

섹션10. 상태를 트리의 위로! 강의 관련질문

작성

·

278

0

Onheartpressed()함수를 만들었는데 onpressed: 파라미터 뒤에 onheartpressed()라고 ()를 붙여야하는거 아닌가요? 함수니까 말이에요. 근데 왜 onheartpressed라고 () 없이 쓸 수가 있는거죠?

답변 2

0

강원빈님의 프로필 이미지
강원빈
질문자

그럼 onpressed: onheartpressed니까 ()를 안적고 정의만 했다는 말인데 onheartpressed에 ()를 붙여서 실행은 언제 하나요? 아무리 봐도

onheartpressed()로 실행한 코드가 없는데 어떻게 코드가 그려지는건가요?

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

onPressed 함수는 "눌렀을때" 실행되는 함수입니다. onHeartPressed() 이렇게 정의하면 build() 함수가 실행되는 순간, 즉 화면에 위젯이 그려지자 마자 실행됩니다. onHeartPressed 이렇게 입력만 해두면 정의만 기억하고 있다가 위젯이 눌렸을때 플러터 프레임워크가 onHeartPressed 함수를 실행 해줍니다. (코드가 그려지진 않습니다. 기능 실행입니다)

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

onHeartPressed와 onHeartPressed()의 차이는 실행을 했냐 안했냐의 차이입니다.

저희가 일반적으로 onPressed:(){} <- 이런식으로 함수를 정의하게 되는데 이는 실행한 함수가 아닙니다.

함수 정의할때를 생각해보면 함수를 정의만 한 상태와 같은걸 알 수 있습니다.

비교를 해보면

onHeartPressed -> (){}

onHeartPressed() -> (){}()

이렇게로 볼 수 있습니다.

감사합니다!

강원빈님의 프로필 이미지
강원빈

작성한 질문수

질문하기