Design-loving front-end engineer
Ryong
Design-loving front-end engineer
전체 방문자
오늘
어제
    • Framework
    • React
      • Concept
      • Library
      • Hook
      • Component
      • Test
    • NodeJS
    • Android
      • Concept
      • Code
      • Sunflower
      • Etc
    • Flutter
      • Concept
      • Package
    • Web
    • Web
    • CSS
    • Language
    • JavaScript
    • TypeScript
    • Kotlin
    • Dart
    • Algorithm
    • Data Structure
    • Programmers
    • Management
    • Git
    • Editor
    • VSCode
    • Knowledge
    • Voice
Design-loving front-end engineer

Ryong

[ Dart ] 기본 문법
Dart

[ Dart ] 기본 문법

2021. 12. 21. 09:22

다트 코드 실행 사이트

https://dartpad.dev

 

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
    'Dart' 카테고리의 다른 글
    • [ Dart ] 컬렉션
    • [ Dart ] 객체 지향 프로그래밍
    • [ Dart ] 분기와 반복
    • [ Dart ] 함수
    Design-loving front-end engineer
    Design-loving front-end engineer
    디자인에 관심이 많은 모바일 앱 엔지니어 Ryong입니다.

    티스토리툴바