2015-01-05 4 views
4

다트의 Datetime 클래스에는 수많은 명명 된 생성자가 있지만 DateTime.parse()은 그 중 하나가 아닙니다. 대신 DateTime.parse()은 DateTime을 반환하는 정적 메서드입니다. 나에게 그것은 생성자로서 의미가있다. (당신은 Datetime.utc() 생성자와 너무 다르지 않은 방식으로 새로운 DateTime 객체를 생성하기 때문에).다트의 Datetime.parse가 팩토리 생성자가 아닌 이유는 무엇입니까?

이론 나는 int.parse이 생성자가 아니거나 더 쉬운 연결을 허용한다는 사실을 비추고 있습니다 (정적 메서드로 계단식 연산자를 사용할 필요가 없음). 하지만 어쩌면 내가 생각하지 못하는 다른 이유가있을 수 있습니다. 누구든지 이름이 지정된 생성자가 아닌 이유를 아는 사람이 있습니까? Uri.parse에 대해 같은 변화에 대한

+1

흥미롭게도, new DateTime.fromString() 팩터 리 생성자 였고 지금 우리가 가지고있는 정적 구문 분석으로 명시 적으로 변경되었습니다. https://github.com/dart-lang/bleeding_edge/commit/6d96912d9b618259d4e2310c2a302f85f807310f –

답변

5

더 설명 : http://permalink.gmane.org/gmane.comp.lang.dart.general/17081

"분석"은 특별하다. 문제는 다음과 같습니다.구문 분석을 통해 결과를 얻거나 결과를 제공하는 결과를 얻거나 문자열을 데이터로보고 새 요소를 생성합니다. 앞에서와 같이 을 보면 "구문 분석"이 정적 함수 여야합니다. 데이터로 문자열 이 표시되면 명명 된 생성자 여야합니다.

그런 다음 일관성이 있습니다.

관련 문제