반응형
이전 파트에서는 그냥 아무것도 변수를 받지 않는 class를 만들었다.
그러면? 이번엔 변수를 받을 수 있는 class를 만들어 봐야지.
class Player {
// late를 이용해서 변수 선언은 여기서 하지만 값은 나중에 받아온다고 하기.
late String name;
late final int xp;
// 여기에서 값을 받아오기. class 이름과 똑같아야 함.
// Constructor
Player(String name, int xp) {
this.name = name;
this.xp = xp;
}
void sayHello() {
print("Hi my name is $name");
}
}
late로 나중에 받아온다고 하고 Player 함수(class랑 동일해야 함)로 값을 받아온다.
이 방법은 너무 긴데... 다음과 같이 줄일 수 있다.
class Player2 {
String name;
final int xp;
// Constructor
// 변수 순서 중요함.
Player2(this.name, this.xp);
void sayHello() {
print("Hi my name is $name");
}
}
이렇게 late를 없애고 this.name, this.xp를 이용해서 바로 불러올 수 있다. 깔끔하네.
이를 main에서 불러오려면...
void main() {
var player = Player("me", 1000);
player.sayHello(); // 출력결과: Hi my name is me
var player2 = Player("another", 100);
player2.sayHello(); // 출력결과: Hi my name is another
}
이렇게 하면 된다.
이렇게 하면 "순서"가 중요하다.
** 이 얘기를 듣자마자 이거 named parameter도 있을 것 같다는 생각을 했고, 아니나 다를까...
반응형
'앱 만들기 프로젝트 > Dart' 카테고리의 다른 글
Dart - 4.3 Named Constructors (0) | 2024.10.16 |
---|---|
Dart - 4.2 Named Constructor Parameters (0) | 2024.10.16 |
Dart - 4.0 Your First Dart Class (0) | 2024.10.16 |
Dart - 3.5 Typedef (0) | 2024.10.16 |
Dart - 3.4 QQ Operator(Null-aware operator) (0) | 2024.10.15 |