[Dart] 다트의 기본 문법 (final, const, 파라미터, arrow)

Dongle·2022년 6월 15일
0

Dart

목록 보기
1/1

final과 const

final과 const 모두 변수를 생성할 때 사용한다.

final /*String*/ name = '동글';
const /*String*/ name1 = '동글1';

var 로 생성하는 변수와 차이점은 우선 타입을 생략할 수 있다. 그리고 var 변수는 아래 코드에서 새로운 값을 재할당 시킬 수 있는데 final과 const는 불가능 하다.

final 과 const 차이점

final : 변수에 할당되는 값을 알 수 없어도 된다.

const : 변수에 할당되는 값을 알아야 한다.

final Time now = DateTime.now();
const Time now1 = DateTime.now();
//const 는 에러 발생

DateTime.now()는 코드 빌드시 현재 시간을 정확히 나타낸다. 코드가 언제 빌드될 지 코드 작성 당시에 알 수 없기 때문에 이런 상황에선 const 코드에 에러가 발생한다.

파라미터

파라미터란 함수에서의 매개 변수와 같은 의미이다.

포지셔널 파라미터 (positional parameter)

// 3개의 숫자 a, b, c 를 더하는 함수
// 파라미터 a, b, c
void main() {
  addNumber(a,b,c);
}
addNumber(int a, int b, int c){
  int sum = a + b + c
}

위의 예시처럼 매개변수의 순서가 중요한 파라미터를 포지셔널 파라미터(positional parameter) 라 한다.

옵셔널 파라미터 (optional parameter)

// 3개의 숫자 a, b, c 를 더하는 함수
// 파라미터 a, b, c
void main() {
  addNumber(a);
  addNumber(a,b,c);
}
addNumber(int a, [int b = 기본값, int c = 기본값]){
  int sum = a + b + c;
}

옵셔널 파라미터는 괄호[ ]를 통해 지정해 줄 수 있으며 매개 변수로 b와 c 를 넣어주지 않아도 문제 없이 코드가 실행되며 이때 설정된 기본값을 기본으로 값이 형성된다.

네임드 파라미터 (named parameter)

// 3개의 숫자 a, b, c 를 더하는 함수
// 파라미터 a, b, c
void main() {
  addNumber(a:, b:, c:);
}
addNumber({
  required int a,
  required int b,
  required int c,
}){
  int sum = a + b + c;
}

네임드 파라미터는 {}를 통해 생성할 수 있으며 이름으로 지정하기 때문에 순서가 중요하지 않다.

required 가 쓰인 파라미터는 기본적으로 매개변수를 넘겨줘야 하는데 required를 지우고 기본값을 지정해 준다면 옵셔널 파라미터 처럼 쓸 수 있다.

arrow funcion - 화살표 함수

//위의 예시를 가져오고 addNumber의 값을 할당받기 위해 return을 추가한다.
void main() {
  int result = addNumber(a:, b:, c:);
}
addNumber({
  required int a,
  required int b,
  required int c,
}){
  int sum = a + b + c;
  return sum;
}

위 예시가 기본적인 a, b, c 값의 합을 반환해주는 함수이다. 이를 arrow 함수로 좀 더 쉽게 만들 수 있다.

//arrow function 사용
void main() {
  int result = addNumber(a:, b:, c:);
}
addNumber({
  required int a,
  required int b,
  required int c,
}) => x + y + z;

=> 이 표시로 arrow 함수를 사용하며 다음에 나오는 값이 반환되는 값이다.

0개의 댓글