인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

lgh3806님의 프로필 이미지
lgh3806

작성한 질문수

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

MaterialStateProperty.resolveWith 에 대한 질문

작성

·

370

·

수정됨

0

foregroundColor: MaterialStateProperty.resolveWith(
        (Set<MaterialState> states) {
      if (states.contains(MaterialState.pressed)) {
        return Colors.white;
      }
      return Colors.red;
    }),
padding: MaterialStateProperty.resolveWith((states) {
  if(states.contains(MaterialState.pressed)){
    return EdgeInsets.all(100.0);
  }
  return EdgeInsets.all(20.0);
})
1. MaterialStateProperty.resolveWith(
        (Set<MaterialState> states)

2. MaterialStateProperty.resolveWith(
                          (states)

위 코드에서 resolveWith를 자동완성 하면 2번 코드같이 나오는데 강의에서는 타입이랑 제네릭까지 명시를 해주시더라구요. 자동완성 되는 방식으로 코드를 작성해도 정상 작동이 되긴하는데 1번과 2번 둘의 차이가 무엇인가요?

답변 1

1

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

안녕하세요!

이미 인지하고 계시는 것과같이 기능상 차이는 사실상 없습니다.

타입을 정확히 명시를 해주냐 안해주냐의 차이입니다!

감사합니다.

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

변수 선언 시에는 타입 명시가 필수라고 알고있는데 인자로 받는 애들은 크게 문제 될게 없는걸까요? (아니면 함수 내부에서 제네릭으로 감싸져 있어서 자동으로 변환 되는 걸까요?)

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

타입 선언은 이미 MaterialStateProperty 클래스가 선언될때 정의돼있는 부분이라 자동으로 유추가 가능합니다.

lgh3806님의 프로필 이미지
lgh3806

작성한 질문수

질문하기