Related to: Dart
개요
플러터라는 Framework에 평소 관심이 있었고, 배우고 싶다고 생각하고 있었습니다.
AI Engineer로 취업도 잘 안되고 있어서 분노의(?) 스터디를 시작합니다.
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; - C# 과 마찬가지로, 모든 객체는 Object를 상속합니다.
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 언어 4시간만에 완전정복 - 인프런 | 강의
이 강의를 통해 Dart 언어를 배우면 Flutter를 시작할 수 있을 정도의 수준으로의 업그레이드가 가능합니다!
https://www.inflearn.com/course/dart-언어-입문/dashboard