19
A
답변
23
final
변수는 값을 가질 수 있지만 일단 할당되면 최종 변수를 다른 값으로 재 할당 할 수 없습니다. 예를 들어
:
main() {
final msg = 'hello';
msg = 'not allowed'; // **ERROR**, program won't compile
}
final
은 객체 인스턴스 변수에 사용될 수있다. 클래스의 마지막 필드는 생성자 본문이 실행되기 전에 설정되어야합니다. 마지막 필드에는 이 아니며에는 최종 변수에 새 값을 설정할 수 없으므로 암시 적 설정자가 생성됩니다.
class Point {
final num x, y;
Point(this.x, this.y);
}
main() {
var p = new Point(1, 1);
print(p.x); // 1
p.x = 2; // WARNING, no such method
}
이 final
변수에 영향을 미치는 것을 깨닫게하는 것이 중요합니다,하지만 개체가 변수가 가리키는. 즉, final
은 변수 개체을 변경하지 않습니다. 예를 들어
: 위 예에서
class Address {
String city;
String state;
Address(this.city, this.state);
}
main() {
final address = new Address("anytown", "hi");
address.city = 'waikiki';
print(address.city); // waikiki
}
는 address
변수는 최종으로 표시되어 있으므로 항상 new Address("anytown", "hi")
생성자 인스턴스 오브젝트를 가리킬 것이다. 그러나 객체 자체에는 변경 가능한 상태가 있으므로 도시를 변경하는 것이 완벽합니다. final
에 의해 방지 된 유일한 것은 address
변수를 재 할당하는 것입니다.
관련 문제
- 1. AWT (확장) 수정자는 언제 유효합니까?
- 2. regexp의 o 수정자는 무엇을 의미합니까?
- 3. Dart에서 파일을 업로드하는 방법은 무엇입니까?
- 4. Dart에서 keyUp 이벤트를 어떻게 수신합니까?
- 5. Dart에서`dir`을 어떻게 실행합니까?
- 6. Template Toolkit에서 문 수정자는 어떻게 작동합니까?
- 7. Dart에서 캔버스 요소를 만드는 방법은 무엇입니까?
- 8. Dart에서 클래스를 동적으로로드 할 수 있습니까?
- 9. Dart에서 대화 형 프로세스를 어떻게 실행합니까?
- 10. Dart에서 CSS 키 프레임 규칙을 만드는 방법
- 11. Dart에서 LISP (적용)하는 방법은 무엇입니까?
- 12. Google Dart에서 OS 아키텍처를 찾으려면 어떻게해야하나요?
- 13. Dart에서 합성 구성 요소는 어떻게 작성합니까?
- 14. Dart에서 사용되는 "const"키워드 란 무엇입니까?
- 15. DOM이 Dart에서 준비되면 알려주는 방법은 무엇입니까?
- 16. 이 정규식은 무엇을합니까? 그리고이 함수는 무엇을합니까?
- 17. Ruby에서 == 무엇을합니까?
- 18. 이것은 무엇을합니까?
- 19. SIFT는 무엇을합니까?
- 20. FormsAuthentication.SetAuthCookie는 무엇을합니까
- 21. 이것은 무엇을합니까?
- 22. Expression.Invoke - 무엇을합니까?
- 23. 쉐이크는 무엇을합니까?
- 24. 정의는 무엇을합니까?
- 25. IsGUIThread - 무엇을합니까?
- 26. NSData로 무엇을합니까?
- 27. "? ="정규식에서 무엇을합니까?
- 28. __sync_synchronize는 무엇을합니까?
- 29. System.Concurrency.AsyncLock은 무엇을합니까?
- 30. kSecReturnPersistentRef는 무엇을합니까?
"클래스의 최종 필드는 생성자 본문이 실행되기 전에 설정되어야합니다." -이 부분이 저를 가장 많이 던지고있었습니다. 생성자에서 최종 변수를 설정하더라도 오류가 발생하는 이유는 나에게 발생하지 않았습니다. –
@KevinSheehan 생성자 앞에 최종 필드를 설정하여 던졌습니다. 생성자 수준에서이 작업을 수행하려는 경우 State가 최종 변수이면 다음과 같이 설정할 수 있습니다. Address (this.city) : state = "Hawaii"; – djm