"=>"
플러터를 요새 공부하다 보니 "=>" 이 화살표 같은 기호가 많이 보인다.
이것은 무슨 기호일까? 🤔
처음 프로젝트를 만들면 아래와 같이 메인 함수가 나타난다.
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
'플러터(Flutter)' 카테고리의 다른 글
[플러터(Flutter)] - 이미지를 캐시에 저장하기 (cached _network_image) (1) | 2021.08.21 |
---|---|
[플러터(Flutter)] - SliverAppBar, SliverList, SliverToBoxAdapter (0) | 2021.08.13 |
[플러터(Flutter)] - ios 애뮬레이터 키보드 안 보일 때 (0) | 2021.07.07 |
[플러터(Flutter)] - don't support null safety (0) | 2021.06.24 |
[플러터(Flutter)] - flutter doctor 오류 (0) | 2020.12.16 |