내 Dart 기반 응용 프로그램에서 방금 new
키워드를 있고 모든 것이 완벽하게 작동 .
대신 final widget = new Widget();
사용할 수도 있습니다.final widget = Widget();
.
이것이 코드에 영향을 미칩니 까?
내 Dart 기반 응용 프로그램에서 방금 new
키워드를 있고 모든 것이 완벽하게 작동 .
대신 final widget = new Widget();
사용할 수도 있습니다.final widget = Widget();
.
이것이 코드에 영향을 미칩니 까?
답변:
아니 그렇지 않아. 함께 다트 2 (자세한 내용과 발표에 대한 클릭)new
또한 const
키워드 만들었다 선택 .
이것은 그 자체 new Widget()
로 똑같은 일을 한다는 것을 의미합니다 Widget()
.
그러나 const
키워드는 const
암시 적으로 const
.
따라서 const
필요할 때 명시 적으로 지정해야 합니다.
new
필요한 곳이 없습니다 . new
올바른 프로그램에서 생략 하면 항상 동일한 방식으로 작동합니다. 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 생성자 앞에 작성 하는 것이 좋습니다 . 이것은 매우 드문 경우이며 일반적으로 불변 객체의 신원에 대해 신경 쓰지 않습니다 (삽입 이 좋은 생각으로 간주되는 이유 입니다).const
new
new
Object()
const
다른 모든 답변에서 언급했듯이 Dart 2에서 사용 new
은 선택 사항입니다. 또한, 효과적인 Dart 지침에 따라 사용 new
을 권장하지 않습니다 .
new
키워드는 항상 클래스의 새로운 인스턴스를 반환하는 클래스를 호출, 지금의 다트 2로 선택되었다. 내 권장 사항 에 따라 레이아웃 정의 외부에서 사용할 수 있지만 ( 필수 아님) 레이아웃 내부에서는 생략 할 수 있습니다 .
여러분과 공유하고 싶은 또 하나의 점은 widget 을 선언 할 때 new
또는 const
키워드를 사용하면 위젯 본문 코드를 축소 및 확장하는 데 사용할 수 있는 + 아이콘도 볼 수 있다는 것 입니다. 이는 동일한 파일에서 다른 위젯 코드를 작업하는 동안 dart 파일 의 나머지 위젯 코드를 축소 / 숨기기를 원할 때 유용 합니다.
new
권장되지 않는 이유 입니다. 사용하지 않으면 무조건 새 인스턴스가 생성되는 것처럼 보입니다.
new
거나const
여전히 필요는 (내가 예 또는 규칙을 기억하지 않는다). 그들은 Dart 2 이후 모든 곳에서 선택 사항으로 만들기 위해 또 다른 시도를 할 수 있습니다.