-
https://stackoverflow.com/questions/57878112/a-class-method-named-function-in-dart
37AppTheme._()나는 다트에서 싱글톤 클래스에 대해 읽었지만 이 코드가 어떻게 작동하는지 이해할 수 없기 때문에 누구든지 이 코드가 의미하는 바를 설명할 수 있다는 것을 봤습니다.
class AppTheme { AppTheme._(); static const Color notWhite = Color(0xFFEDF0F2); static const Color nearlyWhite = Color(0xFFFEFEFE); static const Color white = Color(0xFFFFFFFF); static const Color nearlyBlack = Color(0xFF213333); ... }
-
생성자 " className() 및 className._() 사용 간의 차이점의 중복 가능성– 제임스들린2019년 9월 10일 22:33
2개의 답변
정렬 기준:최고 점수(기본값) 인기 급상승(최근 투표가 더 많음) 수정된 날짜(최신 날짜순) 생성 날짜(오래된 것부터)62AppTheme._();명명된 생성자입니다(또 다른 예는 Flutter 프레임워크의 일부 객체에 대한 복사 생성자일 수 있습니다: ThemeData.copy(...);).
다트에서 선행 문자가 밑줄이면 함수/생성자는 라이브러리에 비공개입니다. 여기에서도 마찬가지이며 밑줄도 유일한 문자이므로 이 생성자를 작성한 사람이 해당 생성자를 전혀 호출할 계획이 없었다고 상상할 수 있습니다.
암시적 기본 생성자를 사용하여 실수로 AppTheme AppTheme._();를 인스턴스화하지 않으려면 필요하지 않습니다.
-
-
괜찮아요! 도움이 될 수 있어서 기쁩니다! 또한 스택 오버플로에 오신 것을 환영합니다! 내 답변이 도움이 되었다면 정답으로 표시하는 것을 잊지 마세요.– 하위 6 리소스2019년 9월 10일 21:35
-
5이것은 약간 정확하지 않습니다. 선행 밑줄은 이름을 라이브러리 전용 으로 만듭니다. 일반적으로 (항상 그런 것은 아님) 파일 전용을 의미합니다. 또한 생략 AppTheme._()하는 것은 완전히 동일하지 않습니다. 당신이 말했듯이, 그것은 AppState인스턴스화되는 것을 방지하기 위해 있습니다. 생성자가 없으면 암시적 기본 생성자가 있습니다.– 제임스들린2019년 9월 10일 22:39
-
Report this ad6클래스를 인스턴스화할 수 없도록 만드는 것입니다.
또한 "클래스에 하나 이상의 개인 생성자가 있고 공용 생성자가 없는 경우 다른 클래스(중첩 클래스 제외)는 이 클래스의 인스턴스를 생성할 수 없습니다." 가 필요한 이유를 먼저 요약 한 것 같습니다. https://learn .microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/private-constructors
-