반응형
positional argument each other
into a named argument constructor
required 를 넣어주고, 순서와 관계없이 값을 가져갈 수 있는 형태로 인자를 받아준다.
class Player {
final String name;
int xp;
String team;
int age;
Player({
required this.name,
required this.xp,
required this.team,
required this.age,
});
void sayHello() {
print("Hi, my name is $name");
}
}
void main() {
var player = Player(
name: "PL",
xp: 500,
team: "blue",
age: 21,
);
player.sayHello();
var player2 = Player(
name: "YJ",
xp: 100,
team: "yello",
age: 25,
);
player2.sayHello();
}
복습
Player(this.name, this.xp, this.team, this.age);
// parameters are positional - 순서가 있다
// 무슨 인자가 뭐인지 순서대로 입력해야 알 수 있다.
Player({this.name, this.xp, this.team, this.age});
// null일수도 있어서 에러가 뜬다.
Player(
{required this.name,
required this.xp,
required this.team,
required this.age});
required를 작성함으로써 에러를 막는다.
> 이것이 Flutter에서 자주 사용하게 될 named constructor이다.
class Player {
final String name;
int xp;
String team;
int age;
// late, this value will be defined "late"
Player(
{required this.name,
required this.xp,
required this.team,
required this.age});
// null일수도 있어서 에러가 뜬다.
void sayHello() {
print("Hi, my name is $name");
// unless you made a variable named with 'name'
// we don't use like $this.name
}
}
void main() {
var player = Player(
name: "nico",
xp: 1500,
team: "red",
age: 20,
);
// we don't have to write like new Player();
player.sayHello();
var player2 = Player(
name: "Ronaldo",
xp: 3000,
team: "Portugal",
age: 38,
);
player2.sayHello();
}
// if I don't want this to be modified
반응형
'DART' 카테고리의 다른 글
[노마드코더 : Dart 시작하기] #4.4 Recap (0) | 2022.11.21 |
---|---|
[노마드코더 : Dart 시작하기] #4.3 Named Constructors (0) | 2022.11.20 |
[노마드코더 : Dart 시작하기] #4.1 Constructors (0) | 2022.11.19 |
[노마드코더 : Dart 시작하기] #4.0 Your First Dart Class (0) | 2022.11.19 |
[노마드코더 : Dart 시작하기] #3.5 Typedef (0) | 2022.11.18 |