작성
·
271
0
안녕하세요, 알찬 강의 잘 보고 있습니다. 이번 강의 중 질문 사항이 생겨 여쭤봅니다.
final newBlackPink = blackPink.map((x){return '블랙핑크 $x';});
이 구문에서, final 과 newBlackPink 사이에 변수 타입(이 경우는 Iterable)에 대한 선언이 있어야하는 것 아닌가? 생각했는데 안 써도 정의가 잘 되더라구요. final을 선언한 이상 변수의 값이 변경되지 않기 때문일까요?
그리고 이런 식으로 Iterable(Set, List 등도) 은 final 로 선언하는 것이 일반적인 용법인지 궁금합니다.
감사합니다.
답변 1
0
안녕하세요!
final을 사용하는 경우 var을 사용하는 것 처럼 자동으로 타입이 유추됩니다!
원한다면 중간에 타입을 넣어주셔도 상관 없습니다.
Iterable 뿐만 아니라 모든 변수는 가능하다면 const, const가 안된다면 final, 그것도 안된다면 가변 가능한 변수로 선언하는게 좋습니다.
이는 Immutable 프로그래밍의 기본으로 선언한 후 값을 변경 할 수 없도록 하면 로직의 흐름이 더욱 자연스러워지고 깔끔하고 이해하기 편한 코드를 작성 할 수 있습니다.
감사합니다!