Related to: Dart
개요
플러터라는 Framework에 평소 관심이 있었고, 배우고 싶다고 생각하고 있었습니다. AI Engineer로 취업도 잘 안되고 있어서 분노의(?) 스터디를 시작합니다.
Dart 언어의 기본 문법을 정리합니다.
핵심 개념
Dart Pad 실행하기
개발환경에 안드로이드 스튜디오가 있다면 상관이 없지만, 그렇지 않은 분들은 Dart 하나를 위해 환경를 꾸리는 것이 부담스러울 수 있습니다.
이 때, Google에 DartPad라고 검색하면 Web형 IDE를 쓸 수 있습니다.
- 알아두면 좋은 단축키
- ctrl + x : 줄 삭제
- ctrl + enter : compile
Dart 변수 선언
Dart에서는 ‘var’ 키워드로 변수를 선언합니다.
void main() {
var x = "hello world!";
print(x);
}물론 기존 C++, C#과 같이 자료형을 직접 표기할 수도 있습니다.
void main(){
int number = 2;
}기본적인 사칙연산을 모두 지원합니다.( + - * / ) 또한 print에 바로 넣을 수 있는 것으로 보아, 내부적으로 String변환 메서드를 갖고 있는거 같습니다.
void main(){
int number1 = 1;
int number2 = 2;
print(number1 + number2)
}-
Dart Built-in types[link]

-
Object Class
- C# 과 마찬가지로, 모든 객체는 Object를 상속합니다. 따라서 아래 표현이 가능합니다.
Object balance = 1000;
Dart 상수 선언
상수는 ‘final’ 또는 ‘const’ 키워드를 사용하여 선언할 수 있습니다. final로 선언한 경우, 변경이 불가능합니다.
final int PRICE = 1000;
PRICE = 2000; // ERROR!상수 선언의 경우, 아래와 같이 type 선언을 생략할 수 있습니다.
final PRICE = 1000;‘final’과 ‘const’의 차이는 build-time에 값을 알 수 있는지의 여부입니다. DateTime.now()의 경우, 해당 구문이 실행될 때의 현재 시간을 반환하므로 build 하는 시점에서는 값을 알 수 없습니다.
fianl now1 = DateTime.now();
const now2 = DateTime.now(); // ERROR!Nullable 선언
자료형 뒤에 ’?’를 붙여서 nullable type을 선언할 수 있습니다.
nullable인 경우, ‘??=’ operator를 사용할 수 있습니다. 좌항의 변수가 null인 경우 우항의 값을 대입합니다.
double? number = null
number ??= 3.0Map
원하는 type으로 dictionary를 만들 수 있습니다.
Map<String, String> dictionary = {
'a': '1234',
'b': 'a134',
'c': '3423',
};
dictionary['d'] = '223123' // add new item조건문
if문 사용법은 아래와 같습니다.
if(number % 3 == 0)
{
print('나머지는 0');
}
else if(number % 3 == 1)
{
print('나머지는 1');
}
else
{
print('나머지는 0');
}switch문 사용법은 아래와 같습니다. break와 default가 있어야 한다는 점에서 사용 방식은 C++, C#과 유사합니다.
switch(number % e){
case 0:
print('나머지는 0');
break;
case 1:
print('나머지는 1');
break;
default:
print('나머지는 2');
break;
}반복문
For Loop 사용방식은 아래와 같습니다.
for(int i = 0; i < 30; i++)
{
//some code
}
List<int> numbers = [1,2,3,4];
for(var number in numbers
{
//some code
}while 및 do-while의 사용방식은 아래와 같습니다.
int total = 0;
while(total<10){
//some code
}
do{
//some code
}while(total>0)Enum 선언
아래와 같이 enum을 선언할 수 있습니다.
enum Status{
approved,
pending,
rejected,
}함수 선언
함수 선언 방식은 다음과 같습니다. 중괄호를 사용하여 optional parameter를 선언할 수 있습니다.
addNumbers(int x, int y, int z, [int? a, int b=2]){
// some code
return x + y + z
}아래 방법으로 named parameter를 선언할 수 있습니다. named parameter로 선언되면 명시적으로 parameter 이름을 입력해야 합니다. ‘requred’ 키워드를 넣어야 하며, 없다면 optional parameter로 취급됩니다.
addNumbers({
required int x,
required int y,
required int z,
int a=3,
int b=9,
}){
//some code
}
addNumbers(x:11, y:2, z:23)
addNumbers(y:1, x:202, z:3)
addNumbers(1,202,3) // ERROR!Method Return Type
void는 리턴타입이 없는 Method를 의미하며 생략할 수 있습니다. int형 변수를 반환하고 싶을 경우, int를 입력합니다
void simplePrint(String word){
print(word)
}
simplePrint(String word){
print(word)
}
int simpleSum(int a, int b){
return a+b
}Arrow Method
간단한 메서드일 경우, 더 간단하게 표현할 수 있습니다.
int add(int a, int b) => a+b;Typedef
메서드 Delegate를 만들 수 있습니다.
typedef custom_op = int Function(int x, int y, int z);
int add(int x, int y, int z) => x + y + z;
int subtract(int x, int y, int z) => x - y - z;
custom_op op = add
int result = op(1,2,3); // 6
op = subtract
result = op(1,2,3) // -4관련 개념
- Dart — Dart 언어 전반 개요
- Dart 기본 OOP — 클래스, 상속, 인터페이스 등 OOP 개념
참조
[코드팩토리] [입문] Dart 언어 4시간만에 완전정복 - 인프런 | 강의
이 강의를 통해 Dart 언어를 배우면 Flutter를 시작할 수 있을 정도의 수준으로의 업그레이드가 가능합니다! https://www.inflearn.com/course/dart-언어-입문/dashboard