TIL: Dart | [노마드코더] Functions, Type def - 221224

Lumpen·2022년 12월 25일
0

Dart

목록 보기
15/20

Functions

String hello(String name) {
	return 'hello $name !';
}

void main() {
	print(hello('name'));
}

다트에서는 타입 어노테이션을 변수 이전에 작성한다
함수에서는 return 에 대한 타입을 선언해줘야 한다

fat arrow syntax

String hello(String name) => 'hello $name !';

fat arrow syntax 로 중괄호와 return 문을 생략하여 작성할 수 있다

named parameter

flutter 에서 자주 사용된다

String hello(String name, int age) {
	return 'hello $name, you are $age';
}

void main() {
	print(hello('name', 33));
}

이런 식으로 작성한다면 함수 사용자가 인자에 대한 의미를 잊을 수 있다

String hello({ String name, int age }) {
	return 'hello $name, you are $age';
}

void main() {
	print(hello(age: 33, name: 'name'));
}

위와 같이 순서에 상관 없이 파라미터 이름과 값을 params: value 형식으로 넘겨줄 수 있다
매개변수 전체를 중괄호로 감싸고 전달하는 인자에는 name: value 형식으로 전달
자동완성 기능도 제공한다

name argument

이 때 매개변수의 기본 값을 적어주어 null safety 하도록 만들어준다

String hello({ String name = 'anyone', int age = 0 }) {
	return 'hello $name, you are $age';
}

required modifier

매개변수 선언 시 required 키워드로 선언하여
해당 매개변수가 꼭 있어야 함을 사용자에게 알린다

String hello({ required String name, required int age }) {
	return 'hello $name, you are $age';
}

optional positional parameter

옵셔널한 매개변수 (not required) 를 지정해줄 수 있다
[자료형? 매개변수 = 기본값] 형식으로 사용

String hello(String name, [int? age = 0] }) {
	return 'hello $name, you are $age';
}

void main() {
	hello('name');
}

Operator

QQ Operator

Question mark 를 두 개 사용해서 QQ 오퍼레이터
??
자바의 null 병합 연산자와 같음

??=

void main() {
	String? name;
    name ??= '기본값';
}

좌항의 변수가 null 이라면 우항의 값을 할당한다

Typedef

type alias 를 만든다

리스트는 reversed 하면 iterble한 다른 무언가가 되어서
다시 list로 변환해줘야 한다

typedef ListOfInts = List<int>;
typedef UserInfo = Map<String, String>; // 이런 구조라면 클래스로 만들어야 한다
profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글