본문 바로가기
Flutter/문법

Dart 문법

by ESTP 개발자 2023. 3. 24.

티스토리에 코드블럭에 dart 문법이 없다니.... 별루당^^

TYPE

Var

자동 타입 변환

나중에 긴 코드에서 코드 읽기 힘듦

 

정수

int number1 = -20;

 

실수

double number2 = 2.5;

 

bool

bool isTrue = true;

bool isFalse = false;

 

String

String name = '레드벨벳';

String name2 = '슬기';

print(name + name2); // 레드벨벳슬기

print('${name}은 $name2'}; // 레들벨벳은 슬기

 

Dynamic

어떤 타입이든 가능

var랑 뭐가 다르지? -> var은 한번 선언하면 타입 변경 불가, dynamic은 변경 가능


nullable, non-nullable

? : null 입력 가능

! : null이 아님을 보장

String name = '코드팩토리';

name = null; // 오류

print(name); // 오류

 

 

String? name2 = '블랙핑크';

name2 = null;

print(name2); // null

 

print(name2!); // name2는 절대로 null이 아니다!


final, const

☑ 둘다 한번 정한 값은 변경 불가

☑ final : 빌드 타임에 값을 알고 있지 않아도 됨

☑ const : 빌드 타임에 값을 알고 있어야 함

 

final String name = '코드팩토리';

print(name); // 코드팩토리

 

const String name2 = '블랙핑크';

print(name2); // 블랙핑크

 

name2 = '코드팩토리'; // 불가 에러남

 

 

☑ var 생략가능 

final ename = '나무늘보';

const a = 12;


null 

?? : 왼쪽 값이 null 일때만 오른쪽 값을 대입해라.

double? number = 4.0;

print(number); // 4

 

number = 2.0;

print(number); // 2

 

number = null;

print(number); // null

 

number ??= 3.0;

print(number); // 3


type 비교 오퍼레이터

 

int number1 = 1;

print(number1 is int); // true

print(number1 is! int); // false


&&, ||

bool result = 12 > 10 && 1 > 0; // true

bool result2 = 12 > 0 || 1 < 0; // true


List

List<String> blackPink = ['제니', '리사', '로제', '지수'];

List<int> numbers = [1, 2, 3, 4, 5];

 

index

print(blackPink[0]); // 제니

length

print(blackPink.length); // 4

 

add

blackPink.add('나무늘보');

print(blackPink); // [제니, 리사, 로제, 지수, 나무늘보]

 

remove

blackPink.remove('나무늘보');

print(blackPink); // [제니, 리사, 로제, 지수]

 

indexOf

print(blackPink.indexOf('로제')); // 2


Map

키, 값을 가지는 자료구조

 

Map<String, String> dict = { 'Harry Potter', '해리포터', 'Ron Weasley', '론 위즐리');

print(dict); // {Harry Potter : 해리포터, Ron Weasley : 론 위즐리}

 

맵 생성

Map<String, bool>  isHarryPotter = {

'Harry Potter' : true,

'Surfing Sloth' : false};

 

맵 값 여러개 추가

isHarryPotter.addAll{

    'SpiderMan' : false

}); 

 

print(isHarryPotter['Spiderman']); // false

 

맵 값 변경

isHarryPotter['Spiderman'] = true; 

 

맵 삭제

isHarryPotter.remove('Harry Potter); // Harry Potter 삭제

 

맵 전체 출력

print(isHarryPotter); // {'Surfing Sloth' : false, 'Spiderman' : true}

 

키 값만 가져오기

print(isHarryPotter.keys); // {'Surfing Sloth', 'Spiderman'}

value 값만 가져오기

print(isHarryPotter.values); // {false, true}


Set

리스트랑 같은데 중복 안됨

 

'Flutter > 문법' 카테고리의 다른 글

[플러터] 화면간 데이터 전달  (0) 2023.05.21
[플러터] 객체 생성 및 선언, 생성자  (0) 2023.05.17

댓글