코딩 이야기/Dart Language

Dart 언어 - 문법 정리

dajoonee(다쥬니) 2020. 5. 31. 21:40
728x90
반응형

Dart 언어는 객체 지향 프로그래밍 언어(Object-Oriented Programming, OOP)이다.

Java나 Python, C++ 등의 언어들도 객체 지향 프로그래밍 언어에 해당한다.

 

 

Hello, World!


main() 함수에서 print() 함수를 이용하여 인자값을 Console에 출력할 수 있다.

문자열과 변수를 같이 출력 해야할 경우,

위와같이 자바와 동일하게 "문자열"+변수+"문자열 형식으로 쓸 수도 있고,

보다 간단한 문법도 있다.

 

문자열 중간에 $기호를 쓰고 변수명을 써주면 된다. 

 

함수(메소드)의 경우에는 ${메소드명()}이런식으로 중괄호를 이용하여 작성하면 된다.

 

 

**개행 시키기**

문자열 시작부분과 끝 부분에 큰 따옴표 대신 작은 따옴표 '를 3번 연속 작성하면 된다.

 

 

 

데이터 타입 (객체 타입) - var


Dart는 기본 데이터 타입외에 var 선언자(객체 타입)를 쓸 수 있다.

(기본 데이터 타입 : int, double, String, bool,...)

 

String name = "dajoonee";

위 코드를 

var name = "dajoonee";

이렇게 사용이 가능하다.

컴파일러에 의해서 name의 데이터 타입이 자동으로 지정된다.

 

 

메소드의 파라미터(매개변수)에도 마찬가지로 적용할 수 있다.

 

 

 

 

 

 

파라미터의 옵션 지정, 순서 무시, 정확한 파라미터에 대입시키기.


1. 함수를 다른 함수의 인자로 주기.

 

다트에서는 함수의 매개값으로 함수를 지정할 수 있다.

 

 

 

2. 매개변수를 옵션으로 지정하기.

 

옵션으로 지정할 해당 매개변수를 [ ]  괄호로 포장하면 해당 변수는 사용자의 선택에 따라 인자로 줄 수도 있고, 안 줄수도 있는 값이 된다.

 

 

만약, 옵션으로 지정된 변수에 아무값도 안들어왔을 때,

기본으로 초기화 해주고 싶은 값이 있다면 지정할 수 있다.

위와 같이 두 번째 생성자에서 number 인자를 주지 않았음에도 불구하고 기본 대입값으로 주어진 2222가 콘솔에 출력되는걸 볼 수 있다.

 

 

3. 인자 값을 줄 때, 정확한 변수에 대입하기.

 

위 코드를 보면 firstName(이름)과 LastName(성)을 생성자의 매개변수로 받는 Name 클래스가 있다.

두 매개 변수 모두 String 타입이며, 생성자의 매개변수 순서를 보면 firstName 다음 lastName 순서인걸 알 수있다.

 

그런데 Name 클래스를 생성할 때 인자값의 순서를 뒤바꾸어 넣었더니, 

값이 잘못 대입되어 콘솔에 뒤바뀐 값이 출력된다.

 

이 때, 순서에 상관없이 제대로 된 변수에 넣고 싶다면 매개변수를 { } 괄호로 묶어주면 된다.

그리고 생성자 인자로는 변수명 : 대입값을 넣어주면 순서에 상관없이 정확한 변수에 대입 시킬 수 있다.

그러면 위와같이 정확하게 출력이 된다.

 

! 참고
대괄호 { } 로 묶인 파라미터의 경우 옵션이 허용되는데(null),
Flutter에서는 @required라는 어노테이션을 지정하여 옵션이 아닌 의무로 던져줘야하는 파라미터가 된다.
(※ Dart에서는 해당 없음)

 

 

람다식


 

Dart는 람다식을 사용할 수 있다.

{ } 괄호 안에서 하나의 코드만이 실행된다면 람다식을 이용하는것이 편리하다.

 

일단 람다식을 이용하지 않은 함수를 살펴보면,

위 코드처럼 한 줄의 코드만 실행되는 함수라면 람다식으로 표현할 수 있다.

리턴값이 있는 함수라도 { } 안에 리턴 코드만 있다면 가능하다!

 

 

 

 

다음에 계속.........

반응형

'코딩 이야기 > Dart Language' 카테고리의 다른 글

[Dart] Enum 타입 - 열거 타입  (0) 2020.12.10