- null값
void main() {
double? number1 = null;
print(number1);
//타입 뒤에 ?를 붙여줘야 null값을 저장할 수 있음
double? number2;
print(number2);
//자동으로 null값 저장
}
- 컬랙션 -> 서로의 타입으로 자유롭게 형변환 가능
- List : 여러 값을 순서대로 저장
- Map : 특정 키 값을 기반으로 빠르게 값을 검색
- Set : 중복된 데이터를 제거할 때 사용
enum Status {
ap,
pe,
re,
}
void main() {
List<String> blackPinkList = ['리사','지수','제니','로제'];
blackPinkList.add('코드팩토리'); //리스트의 끝에 추가
final newList = blackPinkList.where(
(name) => name == '리사' || name == '지수'
);
final newBlackPink = blackPinkList.map(
(name) => '블랙핑크 $name' //리스트의 모든 값 앞에 '블랙핑크' 추가
);
final allMembers = blackPinkList.reduce(
(value, element) => value + ',' + element //초기값은 value, element는 리스트의 다음 요소
);
final allMembers2 = blackPinkList.fold<int>(0, (value, element) => value + element.length);
Map<String, String> dictionary = {
'HP' : '해리포터',
'RW' : '론 위즐리',
};
List<String> blackPink2 = ['로제', '지수', '지수'];
Status status = Status.ap;
print(blackPinkList);
print(newList);
print(newList.toList()); //Iterable을 List로
print(newBlackPink);
print(allMembers);
print(allMembers2); //reduce는 리스트와 함수가 실행되는 리스트 요소들의 타입이 같아야 하지만, fold는 어떤 타입이든 반환 ok
print(dictionary['HP']);
print(dictionary.keys);
print(dictionary.values);
print(Set.from(blackPink2)); //중복값 허용 x
print(status);
}
- 변수 선언
- const : 코드를 실행하지 않은 상태에서 값 확정, 빌드타임
- final : 코드 실행시에 확정, 런타임