개요


Flutter를 공부하기 위한 Dart 공부

변수


변수 var 변수명 = 값; 값에 맞는 자료형에 맞게 셋팅

자료형 변수명 = 값; 자료형에 맞는 값을 넣어야함

dynamic 변수명;, var 변수명; 여러 타입을 가질 수 있는 변수 선언 추천하지 않지만 가끔 사용 됨

void main(){
	dynamic name;
	name = '민돌';
  	if (name is String)
	{
		name.isNotEmpty;
	}
}
// dynamic을 사용할 때에는 타입을 검사하고 사용하는 것을 습관화 하기

var : 관습적으로 함수나 메소드 내부에서 지역 변수를 선언할 때에 사용 값을 수정해도 타입은 유지되야함

자료형 지정 : class에서 변수나 property를 선언할 때 타입 지정

null safety : 개발자가 null 값을 참조할 수 없도록 하는 것

일반적으로, 자료형 변수 = null; 은 불가능한 문법이지만

자료형? 변수; 변수에 자료형에 맞는 값과 null이 들어갈 수 있게 함

void main(){
	String? name = '민돌';
	name = null;
  	if (name != null)
	{
		name.isNotEmpty;
	}
}

void main(){
	String? name = '민돌';
	name = null;
  	name?.isNotEmpty;
}

로 줄여 쓸수 있다

final


변수를 상수로 만들어줌

final name = ‘민돌’;
final String name = ‘민돌’;

name 변수는 수정 불가능

late


void main(){
	late final String name;
	name = '민돌';
}

late는 변수를 먼저 만든 후 데이터를 나중에 한번만 넣을 수 있게 함 (수정 불가, 값을 넣기전에 접근 불가능)

const


compile-time constant
컴파일 전에 값을 알고 있는 변수를 만드는 법 특정 값을 알고 있을 때 (#define 같음 잘모르겠음)

list


list 선언법

var num_list = [1,2,3,4,5];
// 여러 자료형이 들어갈 수 있음
List<int> num_list = [1,2,3,4,5];
// 정수만 들어갈 수 있음
// list에 요소 추가 : 리스트명.add(값);

list의 마지막 요소 가져오기 : 리스트명.last
visual code에서 리스트의 요소를 ,로 끝내면 저절로 여러줄로 포매팅

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

list의 collecting if 기능 (만약 로그인 했을때 추가해야할 경우 등 유용)

List<int> num_list = [
1,
2,
3,
4,
if(true) 5,                       // 만약 조건문이 참이면 5를 추가
];

if(true)
{
	num_list.add(5)               // 위와 같은 역할
}

list의 collecting for 기능

List<int> num2_list = [7,8,9];
List<int> num_list = [
1,
2,
3,
4,
for (var i in num2_list) $i                       // 요소 i를 추가
];
if(true)
{
	num_list.add(5)               // 위와 같은 역할
}

리스트 반전

void main() {
  List<int> list = [1, 2, 3, 4, 5];
  List<int> list_R = list.reversed.toList();      
// reversed를 사용하면 자료형이 List가 아닌 Iterable이 되어 List형식으로 변환해줘야함
  print(list);
  print(list_R);
}

문자열 포매팅


문자열에 변수 넣기

var name = '민돌';
var age = 20;
var hi = "hi my name is $name, nice to meet you and I'm ${age+15}";
// 일반 변수 출력시 $변수 계산 후 출력시 ${계산}
print(hi);

Map


Map : dictionary와 같음 (Map<key, value>)

var dic = {
	'name' : '민돌',
	'age' : 25,
	'marry' : false
};

Map<String, Object> dic = {
	'name' : '민돌',
	'age' : 25,
	'marry' : false
}

print(dic['name']);

Set


Set : python의 튜플과 같음

Set<int> nums = {1,2,3,4,5};
// Set은 List와 유사하지만 요소들이 고유함 (하나씩만 존재함)
nums.add(1);
print(nums);
// 출력결과는 1,2,3,4,5

요소가 하나만 있을때는 Set을 사용하고 중복이 가능하면 List 사용

typedef


변수에 alias를 지정 (별명 지정)

typedef JungSoo = int;
typedef UserInfo = Map<String, String>;
void main() {
  JungSoo n = 1;
  print(n);
}