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

신상훈님의 프로필 이미지
신상훈

작성한 질문수

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

Restaurant Pagination API 작업하기

CursorPagination 제네릭 클레스 사용시 FromJson파라미너중 "T Function(Object? json) fromJsonT" 이부분이 이해가 어려워요

작성

·

464

0

CursorPagination 제네릭 클레스 사용시 FromJson파라미너중

"T Function(Object? json) fromJsonT" 이부분 이해가 잘되지 않습니다.

위 코드를 제레릭 클레스가 Order 일 경우
Order 클래스를 리턴하는 함수에 파라미터는 json 이며 함수의 이름은 fromJsonT 이다
라고 해석을 하는데 fromJsonT가 해당 Order.fromJson을 가르키는지 어떻게 알수있는건가요 ??

fromJsonT 키워드는 JsonSerializable의 정해진 문법인지가요?

보충해 설명 해주시면 감사하겠습니다.


답변 1

6

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

안녕하세요!

단어가 길게 적혀있어서 어렵게 느껴지지 사실 어려울게 하나도 없습니다~ 저희가 지금까지 배웠던거로 모두 이해할 수 있는 부분이예요. 복잡하게 느껴지는 부분은 항상 차분하게 하나씩 소분해서 각개 타개해보시면 좋습니다.

T Function(Object? json) fromJsonT

여기에서 T는 반환타입입니다. 저희가 함수를 작성할때 항상 반환타입을 정의하니 쉽게 알수있죠?

그다음 Function은 함수라는 뜻입니다. 함수타입을 정의할거기때문에 Function 키워드를 사용하게됩니다. 잘 이해가 안되신다면 제 다트언어 강의 Typedef 부분을 봐보시면 금방 이해 되실거예요!

그다음 괄호안에 있는 부분은 당연히 파라미터입니다. 함수에서 일반 괄호는 파라미터를 의미하니까요. 파라미터에 하나의 json이라는 이름을 갖은 파라미터를 받게되는데 이 파라미터는 null 값이 들어올 수 있는 Object 타입입니다.

마지막으로 fromJsonT는 그냥 함수의 이름일뿐입니다. 저희가 위 정의를 팩토리 생성자에 넣어주고있죠? 팩토리 생성자의 바디에서 이 함수를 사용할때 뭐라고 부를지의 정의입니다.

이렇게 하나씩 나눠서 보시면 훨씬 이해하기 쉽습니다!

신상훈님의 프로필 이미지
신상훈

작성한 질문수

질문하기