다트 코드 실행 사이트
DartPad
dartpad.dev
주석
💬 // : 한줄 주석
💬 /* ... */ : 여러 줄 주석
💬 /// : 문서 주석
문장
💬 문장 끝은 항상 세미콜론으로 표시
변수
기본 타입
String name = "Ryong";
bool b = true;
int i = 10;
double d = 10.0;
💬 int와 double은 num 타입에 포함된다.
◻️ 하지만, 타입 추론 지원으로 인해 num 타입은 잘 쓰지 않는다.
💬 다트에서는 자동 형변환을 지원하지 않는다.
int a = 10;
double b = a; // 에러
💬 num 타입에는 int와 double 타입 모두 대입할 수 있다.
int a = 10;
double b = 20.0;
num c = a;
c = b;
타입 추론 var
💬 타입을 직접 명시하지 않고 var로 대체할 수 있는 타입 추론을 지원하며, 일반적으로 이 방법을 많이 사용한다.
var i = 10; // int 타입
var d = 10.0; // double 타입
var s = 'hello'; // String 타입
var s2 = "hello"; // String 타입
var b = true; // bool 타입
var b2 = i < 10; // bool 타입
var b3 = s.isEmpty; // bool 타입
동적 타입 지정 dynamic
💬 변수 선언 시 dynamic을 붙여주면 컴파일러가 해당 변수에 모든 형식을 허용한다.
💬 이후 타입을 변경해도 에러가 나지 않는다.
dynamic somthing = 9;
somthing = 'apple';
print(something); // apple
상수 final, const
💬 변수 선언은 가급적 값이 변하지 않도록 상수로 사용하는 것이 좋다.
final String name = 'Ryong';
final age = 10;
💬 코틀린의 val처럼 타입을 생략하고 사용할 수도 있다.
const CODE_HELLO = 'hello';
final now = DateTime.now();
💬 const는 컴파일 타임에서 상수를 정의하기 때문에 rebuild 하지 않아 앱의 속도가 빨라진다.
💬 반면, final은 런타임에서 정의되는 값을 할당할 수 있으므로 앱 실행 시 값이 정해진다.
산술 연산자
💬 지원하는 산술 연산자
◻️ +, -, *, /
◻️ ~/ (몫), % (나머지)
assert(2 + 3 == 5);
assert(5 / 2 == 2.5);
assert(5 ~/ 2 == 2);
assert(5 % 2 == 1);
💬 assert 함수는 계산 결과가 참인지 검사한다.
증감 연산자
💬 후위 연산자 : a++, a--
💬 전위 연산자 : ++a, --a
타입 검사
💬 is : 같은 타입이면 true
💬 is! : 다른 타입이면 ture
int a = 10;
if (a is int) // true
if (a is! double) // true
형변환 (as)
💬 다른 타입으로의 변환은 불가능하지만, 업캐스팅과 같은 상위 개념으로의 변환은 가능하다.
특수문자 무시 String
String _text = r"$100";
💬 String 앞에 r을 붙이면 raw text로 인식된다.
'Dart' 카테고리의 다른 글
[ Dart ] 함수형 프로그래밍 (0) | 2021.12.21 |
---|---|
[ Dart ] 컬렉션 (0) | 2021.12.21 |
[ Dart ] 객체 지향 프로그래밍 (0) | 2021.12.21 |
[ Dart ] 분기와 반복 (0) | 2021.12.21 |
[ Dart ] 함수 (0) | 2021.12.21 |