반응형
질문
Flutter 튜토리얼과 관련하여 밑줄 _
을 만났습니다.
Java에서 _
은 private 변수의 명명 규칙으로 사용된다는 것을 알고 있습니다.
- Flutter에서도 적용되는가요? Flutter에는 public/protected가 없으므로 주의해야 합니다.
_
는 실제로 private(다른 클래스에서 접근할 수 없음)인가요 아니면 명명 규칙일 뿐인가요?
변수
class RandomWordsState extends State<RandomWords> {
final List<WordPair> _suggestions = <WordPair>[];
final Set<WordPair> _saved = new Set<WordPair>();
final TextStyle _biggerFont = const TextStyle(fontSize: 18.0);
...
}
_
는 위젯도 private으로 만드나요? 이 경우, 메인 클래스는 위젯에 접근할 수 없지 않나요?
함수
Widget _buildRow(WordPair pair) {
final bool alreadySaved = _saved.contains(pair); // Add this line.
...
}
답변
이것은 단순한 명명 규칙이 아닙니다. 언더스코어 필드, 클래스 및 메서드는 정의된 .dart
파일에서만 사용 가능합니다.
State
위젯의 구현을 비공개로 만드는 것이 일반적인 관행입니다. 그래서 해당 StatefulWidget
에서만 인스턴스화될 수 있습니다:
class MyPage extends StatefulWidget {
@override
_MyPageState createState() => _MyPageState();
}
class _MyPageState extends State<MyPage> {
@override
Widget build(BuildContext context) {
return Container();
}
}
반응형
댓글