map // set
js 객체랑 크게 다를 거 없어보임
값 업데이트 할 때도 키를 가져다가 씀
obj2['c'] = "car"
선언과 동시에 값 넣을 때
///////////dart1
void main() {
Map dictionary = new Map.from({
'a' : 'appple',
'b' : 'banana'
});
print(dictionary);
}
//////dart2
void main() {
Map<String, String> dictionary = {
'a': 'apple',
'b': 'banana',
};
print(dictionary);
}
+ new Map () 권장 x <= 이유 찾아보니 가독성 때문이라고 함 ()
+ 타입
+
putIfAbsent 메서드
void main() {
Map<String, String> dictionary = {
'a': 'apple',
'b': 'banana',
};
// 추가
dictionary.putIfAbsent('c', () => 'cherry');
print(dictionary); // {'a': 'apple', 'b': 'banana', 'c': 'cherry'}
}
이렇게 추가 가능
=> [] 연산자로 추가 vs putIfAbout 메서드로 추가
객체 안에 키가 있을 경우 [] 는 덮어씌워지지만 putIfAbout 은 안 덮어씌워짐 그냥 원래값 나옴
장점 :
여러 스레드가 동시에 같은 키에 접근할 때 의도하지 않은 결과를 방지할 수 있습니다.
=> 그렇다면 dart는 멀티 스레드를 지원하는가
키만 빼오기 값만 빼오기
void main() {
Map dictionary = new Map.from({
'a' : 'appple',
'b' : 'banana'
});
List<String> st = List<String>.from(dictionary.keys);
List<String> st2 = List<String>.from(dictionary.values);
print(st);
print(st2);
print(dictionary);
}
변수 선언 약속
-변수 이름 중복 사용 X
-변수 선언은 소문자로 시작
-변수 선언할 때, 띄어쓰기금지
-클래스는 첫 글자가 대문자
Final, Const
const final 재할당 불가능
void main() {
final String name = "code";
name = "wow"
// final 은 재할당 불가능
print(name);
}
차이점
const 컴파일 시점에 값이 있어야 됨
final 런타임에 지정되어 있으면 됨
예를 들어 new Date ()
다트는 DateTime.now()
이건 런타임 시점에 값을 알 수 있음
void main() {
Future.delayed(
Duration(milliseconds : 1000),(){
final DateTime test2 = DateTime.fromMillisecondsSinceEpoch(test);
print(test2);
}
);
}
1초 후에 시간 잘 찍힘
시간을 알 수 있는 건 런타임 시점임
void main() {
Future.delayed(
Duration(milliseconds : 1000),(){
const DateTime test2 = DateTime.fromMillisecondsSinceEpoch(test);
print(test2);
}
);
}
1초 후에 시간 안 찍힘
시간을 알 수 있는 건 런타임 시점임
const 는 컴파일 시점에 값을 알아야 됨
+++++ 그럼 궁금한 점
자바스크립트 실행시 npm start 를 누름
그럼 이때 빌드 되는 건지?
맞음 빌드 됨
근데 개발용 빌드와 프로덕션 빌드는 다름
npm start 는 개발용 빌드임
기계어로 바뀌는 순간은 자바스크립트 엔진에서 함
프로덕션 빌드는 여기에
프로덕션 환경에서 실행 가능한 코드를 생성하고, 최적화 및 성능 향상을 위한 추가 단계를 수행합니다.
라고 함
그럼 런타임 시점은 언제인가?
실제로 사용자가 애플리케이션을 브라우저에서 열고 상호 작용하는 시점이 런타임이라고 할 수 있습니다.
라고 함
'TIL' 카테고리의 다른 글
const test ()=>()=>{} (0) | 2023.12.07 |
---|---|
dart 3 <= enum, 타입 관련 이야기라 재밌음 (1) | 2023.11.29 |
dart 1 (2) | 2023.11.27 |
리액트 쿼리3 (2) | 2023.11.26 |
제이쿼리 1 append, template (0) | 2023.10.06 |
댓글