| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- container
- 구글
- Ai
- chatGPT
- Fultter
- 파이썬
- YOLO
- 리뷰
- lightly
- 엔지니어
- 인공지능
- 클론코딩
- docker
- image
- llm
- 영화
- GenAI
- 논문리뷰
- coding
- DART
- Gemma
- Flutter
- 딥러닝
- Kubernetes
- clone
- ultralytics
- Python
- 야호
- FunctionGemma
- Type
- Today
- Total
딥러닝 공부방입니다. 근데 이제 야매를 곁들인.
Dart functions 본문
다트는 기본적으로 object-oriented language 로 python 과 유사한 점이 매우 많다.
python 과 마찬가지로 function 도 function type 의 object 이다.
다음과 같이 함수 역할을 하는 클래스를 만들 수도 있다.
class WannabeFunction {
String call(String a, String b, String c) => '$a $b $c!';
}
var wf = WannabeFunction();
var out = wf('Hi', 'there,', 'gang');
void main() => print(out);
python 에서는 __call__ 을 정의하면 위와 똑같이 만들 수 있다.
함수 정의
함수를 정의하는 방법은 c 언어와 매우 유사하다.
반환자료형 함수이름(매개변수자료형 매개변수이름) {
// do somthing
return ...
}
함수가 하나의 구문만 가지는 경우 짧게 줄여서 쓸 수 있다.
=> 뒤에 리턴할 값을 놓기만 하면 된다.
반환자료형 함수이름(매개변수자료형 매개변수이름) => somethine to return;
매개변수
positional, name, optional parameter 가 존재한다.
이들의 사용성은 엄격하게 구분되어있다.
positional 은 말그대로 매개변수 위치에 따라 값을 받는 방식이다.
디폴트 값 지정을 할 수 없고 named 처럼 값을 보낼 수도 없다.

named 는 변수 명을 지정해서 넘겨주는 방식이다.
디폴트 값을 지정할 수 있다.
값은 변수명: 값 으로 넘겨 주고
named 파라미터 종류는 {} 안에서 정의할 수 있다.
하지만 디폴트를 지정하지 않는 경우 nullable 로 지정해줘야한다.
타입 뒤에 ? 를 붙이면 된다.

nullable 이라는 개념이 아직 익숙하지 않지만 python 에서 optional 파라미터 뒤에 = None 을 일일히 붙이는 것보다 가독성도 좋고 편한것 같다.
optional 은 [] 안에 정의하면 된다.
마찬가지로 디폴트 값을 지정하지 않는 경우 nullable 을 명시한다.
사용방법은 positional 과 같다.

'지식 > Flutter' 카테고리의 다른 글
| Dart 반복문 (0) | 2023.01.23 |
|---|---|
| Dart 조건 분기 (0) | 2023.01.23 |
| Dart Final 과 Const (0) | 2023.01.21 |
| Dart 자료형 (1) | 2023.01.21 |
| Dart 설치 (0) | 2023.01.21 |