728x90
반응형
Flutter로 앱을 만들 때, 클래스에 데이터를 전달하는 방법을 이해하는 것은 매우 중요합니다.
이번 글에서는 클래스에 데이터를 전달하는 두 가지 주요 방법인 위치 파라미터와 네임드 파라미터를 쉽게 설명하겠습니다.
1. 위치 파라미터(Positional Parameters)
위치 파라미터는 생성자에서 파라미터를 순서대로 전달하는 방식입니다.
예를 들어, 클래스 User가 있고, name과 age라는 두 개의 파라미터가 있다고 가정해보겠습니다.
위치 파라미터 예제
- User 클래스 정의
class User {
String name;
int age;
User(this.name, this.age);
}
여기서 User(this.name, this.age);는 User 클래스의 생성자입니다.
생성자에 name과 age를 순서대로 전달해야 합니다.
- UserProfile 위젯에서 User 클래스 사용
class UserProfile extends StatelessWidget {
final User user;
UserProfile(this.user);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('User Profile'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Name: ${user.name}'),
Text('Age: ${user.age}'),
],
),
),
);
}
}
void main() {
runApp(MaterialApp(
home: UserProfile(User('Alice', 30)),
));
}
여기서 User('Alice', 30)처럼 User 객체를 생성할 때, name과 age를 순서대로 전달합니다.
2. 네임드 파라미터(Named Parameters)
네임드 파라미터는 파라미터의 이름을 명시적으로 지정하여 전달하는 방식입니다.
이 방법은 코드의 가독성을 높이고, 파라미터를 전달하는 순서에 구애받지 않는다는 장점이 있습니다.
네임드 파라미터 예제
- User 클래스 정의
class User {
String name;
int age;
User({required this.name, required this.age});
}
여기서 User({required this.name, required this.age});는 User 클래스의 생성자입니다.
파라미터 이름을 명시적으로 지정할 수 있습니다.
- UserProfile 위젯에서 User 클래스 사용
class UserProfile extends StatelessWidget {
final User user;
UserProfile({required this.user});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('User Profile'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Name: ${user.name}'),
Text('Age: ${user.age}'),
],
),
),
);
}
}
void main() {
runApp(MaterialApp(
home: UserProfile(user: User(name: 'Bob', age: 25)),
));
}
여기서 User(name: 'Bob', age: 25)처럼 User 객체를 생성할 때, name과 age를 명시적으로 지정하여 전달합니다.
결론
Flutter에서 클래스에 파라미터를 전달하는 두 가지 방법에 대해 알아보았습니다.
- 위치 파라미터는 파라미터를 순서대로 전달하는 방식으로 간단하고 직관적입니다.
- 네임드 파라미터는 파라미터의 이름을 지정하여 전달하는 방식으로 가독성이 높고 유연합니다.
이 두 가지 방법을 잘 이해하고 사용하면 Flutter 애플리케이션 개발이 훨씬 쉬워질 것입니다.
728x90
반응형
'Flutter' 카테고리의 다른 글
플러터 라우터: 앱 내비게이션을 위한 필수 도구 비교 (0) | 2024.07.26 |
---|---|
플러터에서 앱 상태에 대한 대응 방법: 핵심 전략 이해하기 (0) | 2024.07.25 |
Flutter 3.7.2 PlatformView API 풀매뉴얼: 심층 가이드 (0) | 2024.07.25 |
Flutter 3.7.2 PlatformView API: 사용법 및 옵션 (0) | 2024.07.24 |
플러터 3.7.2 출시! 새로운 기능과 주요 개선 사항 (2) | 2024.07.24 |