Dart 는 main 함수가 꼭 필요하고, 코드 끝에 세미콜론(
;
) 붙여주기void main() { print('hello world'); }
void main() {
String name = 'ekkk';
name = 'dart';
}
var
-> 관습적으로 함수, 메소드 내부에 지역 변수 선언할 때 사용void main() {
var name = 'ekkk';
name = 'dart';
}
타입 체크 하지 않고 런타임에 객체의 타입을 결정
변수 선언 후에도 다른 타입의 값 할당 가능
dynamci type 으로 선언된 변수는 조건문으로 타입을 확인할 수 있음
void main() {
dynamic name = 'ekkk';
name = 'dart';
}
void main() {
dynamic name;
if (name is String) {
//////
}
}
null safety
-> null 값을 참조할 수 없도록 하는 것
변수타입 뒤에 ?
를 붙여주면 null 을 허용할 수 있음
-> name 은 String 일 수도 있고, null 일 수도 있음
void main() {
String? name = 'dart';
name = null;
if(name!= null){
name.isNotEmpty;
// if 문 코드 단축ver
name?.isNotEmpty;
}
}
한 번 정의된 변수를 수정할 수 없게 만들기 위해서는 -> final
키워드
void main() {
// 타입은 생략 가능
final String name = 'dart';
// 변수 수정 불가 -> 오류 발생
name = 'flutter';
}
late
-> 초기 데이터 없이 변수 선언 가능하게 해줌
값을 할당하기 전에 접근하면 안됨
void main() {
late final String name;
// do something
name = 'dart';
print(name);
}
dart 에서의 const 는 compile-time constant 를 만들어줌
final 과 마찬가지로 한 번 선언되면 수정 불가
compile-time 에 알고 있는 값이어야함
=> 컴파일할 때 값을 알고 있는 변수를 만드는 방법
앱스토어에 앱을 올리기 전에 값을 알고 있다면 => const
어떤 값인지 모르거나 그 값이 API 로부터 오거나 사용자가 입력해야 하는 값일 경우 => final / var
num 을 선언할 경우 정수형 실수형 상관없이 숫자형 데이터를 선언
int 와 double 의 상위개념
void main() {
num x = 1;
}
정수는 int 타입으로 표현하고, 실수는 double 타입으로 표현
void main() {
int y = 2;
double z = 3.0;
}
문자열을 표현하는 타입으로 큰따옴표 혹은 작은따옴표로 표현
void main() {
String name = 'dart';
}
불리언은 true 또는 false 값을 가짐
void main() {
bool isValid = true;
}
void main() {
var numbers = [1,2,3,4];
numbers.add(0);
}
collenction if
와 collection for
을 지원void main() {
var addFive = true;
var numbers = [
1,
2,
3,
4,
if(addFive) 5
];
}
text 에 변수를 추가하는 방법
코드 내에서 for 문을 사용하여 다른 리스트를 반복문으로 호출하여 기존 리스트에 새롭게 추가
key(왼) 와 value(오) 로 이루어져 있음
void main() {
var player = {'name': 'Kim', 'xp': 19.99, 'superpower': false};
// 빈 Map 선언
// <왼> -> key 타입, <오> -> value 타입
Map<int, bool> player2 = {1: true, 2: false, 3: true};
Map<List<int>, bool> player3 = {
[1, 2, 3]: true,
[4, 5]: false
};
}
Set 은 List 와 달리 set 에 속한 모든 아이템들은 유니크함
=> 중복값을 허용하지 않음
=> 요소가 항상 하나씩만 있어야 할 경우에 사용