본문 바로가기
TIL

dart 2

by 은지:) 2023. 11. 27.
728x90
반응형

 

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 는 개발용 빌드임

기계어로 바뀌는 순간은 자바스크립트 엔진에서 함

 

프로덕션 빌드는 여기에

프로덕션 환경에서 실행 가능한 코드를 생성하고, 최적화 및 성능 향상을 위한 추가 단계를 수행합니다.

라고 함

 

 

그럼 런타임 시점은 언제인가?

 

실제로 사용자가 애플리케이션을 브라우저에서 열고 상호 작용하는 시점이 런타임이라고 할 수 있습니다.

라고 함

 

728x90
반응형

'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

댓글