지식/Flutter

Dart functions

ZeroAct 2023. 1. 23.
728x90
반응형

다트는 기본적으로 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 과 같다.

 

728x90
반응형

'지식 > 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

댓글