반응형
Dart에는 public, protected & private같은 키워드가 존재하지 않는다.
대신 식별자가 밑줄로 시작하면 라이브러리 전용 식별자가 된다.
사실 이 부분에 대해서 쓸려고 한 것은 아니기 때문에 해당 부분은 https://dart.dev/language/libraries 에서 확인하면 될 것 같다.
문제는 해당 방법을 사용한 식별자를 생성자에서 파라미터로 받아서 초기화 하려고 할 때 마주할 수 있다.
우선 아래의 샘플코드를 보자.
class Sample {
final int _number;
Sample(this._number);
}
이렇게 사용할 경우 아무런 문제가 되지 않는다. 다만
class Sample {
final int? _number;
Sample({this._number});
// error Named parameters can't start with an underscore.
}
or
class Sample {
final int _number;
Sample({required this._number});
// error Named parameters can't start with an underscore.
}
에러 내용 그대로 밑줄 변수는 라이브러리 전용이기 때문에 파라미터로 사용할 수 없다.
따라서 초기화에서 매핑을 지정해야 정상적으로 사용가능하며 아래와 같다.
class Sample {
final int _number;
Sample({required int number}) : _number = number;
}

반응형
'개발 > dart&flutter' 카테고리의 다른 글
[dart/flutter]flutter failed to load dynamic library 'sqlite3.dll': error code 126 (1) | 2024.02.17 |
---|