[dart] Dart에서 “new”키워드를 사용해야합니까?

내 Dart 기반 응용 프로그램에서 방금 new 키워드를 있고 모든 것이 완벽하게 작동 .

대신 final widget = new Widget();사용할 수도 있습니다.final widget = Widget(); .

이것이 코드에 영향을 미칩니 까?



답변

아니 그렇지 않아. 함께 다트 2 (자세한 내용과 발표에 대한 클릭)new 또한 const키워드 만들었다 선택 .

이것은 그 자체 new Widget()로 똑같은 일을 한다는 것을 의미합니다 Widget().


그러나 const키워드는 const암시 적으로 const.
따라서 const필요할 때 명시 적으로 지정해야 합니다.


답변

Dart 2에서 new또는 const앞에 또는 없이 함수와 같은 생성자를 호출하면를 사용하는 것과 같습니다 new. const 호출을 원하면 const앞에 넣어야 합니다.

const 표현식 에서 const다시 작성할 필요가 없으며 일부 컨텍스트에서는 const 표현식 필요한 (예 : switch case 표현식 및 const 변수의 이니셜 라이저)에서는 외부 const도 필요하지 않습니다.

그래서 당신은 쓸 필요가 없습니다 new.

Dart 언어 팀은 Dart 2의 초기 업데이트에서 대신 삽입하도록 기본적으로 new또는 삽입 할 수있는 표현식 const(즉, 상수 인수가있는 const 생성자)이 올바른 호출 을 허용하려고합니다 . , 객체가 새 인스턴스가 될 필요가 있는 다른 const 생성자 앞에 작성 하는 것이 좋습니다 . 이것은 매우 드문 경우이며 일반적으로 불변 객체의 신원에 대해 신경 쓰지 않습니다 (삽입 이 좋은 생각으로 간주되는 이유 입니다).constnewnewObject()const


답변

다른 모든 답변에서 언급했듯이 Dart 2에서 사용 new은 선택 사항입니다. 또한, 효과적인 Dart 지침에 따라 사용 new 을 권장하지 않습니다 .


답변

new키워드는 항상 클래스의 새로운 인스턴스를 반환하는 클래스를 호출, 지금의 다트 2로 선택되었다. 내 권장 사항 에 따라 레이아웃 정의 외부에서 사용할 수 있지만 ( 필수 아님) 레이아웃 내부에서는 생략 할 수 있습니다 .

여러분과 공유하고 싶은 또 하나의 점은 widget 을 선언 할 때 new또는 const키워드를 사용하면 위젯 본문 코드를 축소 및 확장하는 데 사용할 수 있는 + 아이콘도 볼 수 있다는 것 입니다. 이는 동일한 파일에서 다른 위젯 코드를 작업하는 동안 dart 파일 의 나머지 위젯 코드를 축소 / 숨기기를 원할 때 유용 합니다.


답변