플러터(Flutter)

[플러터(Flutter)] - "=>" 는 무슨 뜻일까? (Dart)

HANBEEN 2021. 7. 15. 23:34
반응형

"=>" 

플러터를 요새 공부하다 보니 "=>"  이 화살표 같은 기호가 많이 보인다. 

이것은 무슨 기호일까? 🤔

 

처음 프로젝트를 만들면 아래와 같이 메인 함수가 나타난다.

void main() {
  runApp(MyApp());
}

하지만 플러터 공식 문서를 보면 위 코드를 아래와 같이 한 줄로 작성을 하고 있다.

void main() => runApp(MyApp());

 문서에는 아래의 문장만 적혀있기 때문에, 그냥 main 함수는 위와 같이 한 줄 함수로 쓰는 거구나 하고 별다른 생각 없이 넘겼었다 🙁

  • main() 메서드는 화살표(=>) 표기법을 사용합니다. 한 줄 함수 또는 메서드에 화살표 표기법을 사용하세요.

그러다 오늘 유튜브를 보며 플러터를 공부 중  => 를 통해 기능을 넘기는 것을 보고,

이 기호의 의미를 잘 알지 못하는 것 같아 찾아보게 되었다. 🙂

 

"=>" 는 Dart 언어에서 사용하고, 표현식을 오른쪽으로 실행하며 값을 반환하는 함수를 정의하는 방법이다. 

* 함수를 정의할 때 생기는 중괄호 {}를 없애고 사용한다.

 

예를 들면

int sum(int x, int y) {
  return x + y;
}

이러한 코드를

int sum(int x, int y) => x + y;

이렇게 간단하고 명료하게 나타낼 수 있는 것이다. ! 

 

함수를 매개변수로?

이렇게만 보면 이해하기 쉽고 간단하지만, 복잡해진 코드속에서 사용하면 내 머리도 복잡해진다.. 🤯

 

위와는 조금 다른 예시같지만, 아래와 같이 사용하기도 한다

 

예를 들어, CustomElevatedButton 이라는 함수 안에 text와 PageRoute 인자를 넣어줘야 하는데

아래와 같이 매개변수 안에서 바로 () => 를 사용한다.. 

CustomElevatedButton(
            text: "회원가입",
            pageRoute: () => Get.to(LoginPage()),
          )

이유는 Dart 에서는 함수를 값으로 취급할 수 있다고 한다. 때문에 위와 같이 대입을 할 수 있는 것이다.

* 이것이 가능한 함수를 일급 객체(first class object)라고 부른다고 한다.

 

 

 

PS) 블로그를 정리하면서도 머리속이 복잡하다.. 계속하다 보면 익숙해질 거라 믿는다 😥

 

틀린 부분이 있으면 말씀해주세요! 

 

https://stackoverflow.com/questions/65343818/whats-the-meaning-of-arrow-in-dart-flutter

반응형