본문 바로가기
Flutter

Flutter에서 클래스에 파라미터 전달하기: 위치 파라미터와 네임드 파라미터

by Maccrey Coding 2024. 7. 25.
728x90
반응형

 

Flutter로 앱을 만들 때, 클래스에 데이터를 전달하는 방법을 이해하는 것은 매우 중요합니다.

이번 글에서는 클래스에 데이터를 전달하는 두 가지 주요 방법인 위치 파라미터네임드 파라미터를 쉽게 설명하겠습니다.

1. 위치 파라미터(Positional Parameters)

위치 파라미터는 생성자에서 파라미터를 순서대로 전달하는 방식입니다.

예를 들어, 클래스 User가 있고, name과 age라는 두 개의 파라미터가 있다고 가정해보겠습니다.

 

위치 파라미터 예제

  1. User 클래스 정의
class User {
  String name;
  int age;

  User(this.name, this.age);
}

여기서 User(this.name, this.age);는 User 클래스의 생성자입니다.

생성자에 name과 age를 순서대로 전달해야 합니다.

  1. 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)

네임드 파라미터는 파라미터의 이름을 명시적으로 지정하여 전달하는 방식입니다.

이 방법은 코드의 가독성을 높이고, 파라미터를 전달하는 순서에 구애받지 않는다는 장점이 있습니다.

 

네임드 파라미터 예제

  1. User 클래스 정의
class User {
  String name;
  int age;

  User({required this.name, required this.age});
}

여기서 User({required this.name, required this.age});는 User 클래스의 생성자입니다.

파라미터 이름을 명시적으로 지정할 수 있습니다.

  1. 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
반응형