반응형
Cascade Notation
이러한 코드가 있다.
class Player{
String name;
int xp;
String team;
Player({required this.name,required this.xp,required this.team});
void sayHello(){
print("hi my name is $name"); //클래스 함수 내에서는 this를 쓸 필요가 없음
}
}
void main() {
var test = Player(name:'test', xp:1200, team:'red');
}
여기서 인스턴스의 프로퍼티 값을 바꾸고 싶다면 어떻게 해야 될까? 일반적으로는 test.name = '~~~' 이런 식으로 하나씩 바꿔 주어야 될 것이다. 근데 이러면 비슷한 코드를 계속 써야한다. 이걸 이렇게 간단히 할 수 있다.
var test = Player(name:'test', xp:1200, team:'red')
..name='test2'
..xp = 1400
..team = 'blue';
이렇게 하면 일반적인 방법보다 적은 코드로 값을 수정할 수 있다. 앞의 점 ..가 test를 가리키기 때문에 값을 수정할 수 있다. 주의할 점은 첫번째 줄에서 ; 을 쓰는게 아니라 제일 마지막에 ;을 써야 한다.
Enum
개발을 하다보면 제일 흔하게 나오는 실수 중 하나는 바로 오타이다 예를 들면....

red를 써야하는데 redd를 쓰는 오타... 이런 것을 방지해줄 수 있게 enum을 사용할 수 있다. 먼저 enum을 선언한다.

안에는 String이여도 굳이 ""를 해줄 필요가 없다. 밑에 내려와서 Player 클래스의 team 변수의 타입을 Team으로 바꿔준다.
class Player{
String name;
int xp;
Team team;
...
}
그리고 main 함수로 돌아와 다음과 같이 작성한다.

Team 안에 있는 value 중에 하나를 선택하여 작성하면 된다. 그러면 오타가 날 가능성이 없고 더 안전한 개발이 가능하다. 쉽고 유용하다. 특히 다트를 사용하는 플러터에서는 enum을 많이 사용하기 때문에 알아두어야 한다.
반응형
'프로그래밍 언어 > Dart' 카테고리의 다른 글
[Dart] 추상화 클래스와 상속, Mixin (0) | 2023.10.25 |
---|---|
[Dart] 클래스 - 클래스와 생성자 (2) | 2023.10.25 |
[Dart] 함수 (0) | 2023.02.26 |
[Dart] 자료형 (0) | 2023.02.22 |
[Dart] Dart를 시작해보자 (0) | 2023.02.21 |