플러터를 시작해야 하는 이유
AOT ( ahead of time)
컴파일을 먼저 하고 그결과인 바이너리를 배포
JIT (just in time)
개발 도중에 코드를 변경해도 바로바로 변경가능 dart vm에 의해
null safety
프로그램을 더 안전하게 (참조)
DartPad
dartpad.dev
dart는 자동적으로 main 함수를 찾는다 main 필수
세미콜론이 필수
세미콜론이 없어야 되는 기능이 따로 있다.
variable
변수타입 지정 안지정 모두 가능
var : 함수나 메소드 내부에 지역변수를 선언할 때 사용
dynamic : 타입을 지정해주지 않는다. 값을 주지 않는다.
null safety : 개발자가 null값을 참조할 수 없도록 하는 것
타입뒤에 ? 는 타입값이나 null이 들어갈 수 있음
final : 변수 수정불가
late : 나중에 변수 넣어주기 가능 ex) late final string name;
api 작업할때 많이 사용
const는 compile-time constant를 만들어준다.
컴파일 할 때 알고 있는 값에 사용 ( 앱스토어에 올리기전에 알고 있는 값)
data types
dart 특징 : 모든 타입이 전부 class로 되어있고 object를 상속받고 있다.
num : int형 or double
list : [] 값 끝에 ,를 붙여두면 알아서 나눔 기능
collection if 기능 : if로 존재할 수도 안할 수도 있는 요소를 가지고 만들 수 있다.
ex ) if (true) 5 : 5를 추가해줘라
string interpolation : $변수이름 으로 문자열 추가 가능 , 수식을 쓰고 싶다면 ${age +2} 이렇게
collection for : 리스트 안에 for문을 돌려 리스트를 추가 가능
var
void main() {
var oldFriends = ['kim', 'choi'];
var newFriends = ['ha', 'hwag','joe',
for (var friend in oldFriends) "$friend",];
print(newFriends);
}
결과
[ha, hwag, joe, kim, choi]
Maps : key 와 value를 받는 타입
Map <int, string> or var 이름 ={key : vallue, key : value }
api 같은 정보들은 class를 사용할것
Set : 가지고 있는 값은 모두 유니크하다 중복 x
set<int> number = {1,2,3,4}
여기서 1을 추가해도 변화x
Functions
string hello(string name) {return 값;} 대신에
string hello(string name)=>값; 으로 쓸수 있다.
named parameters : 함수가 받는 매개변수의 이름을 그대로 써도된다.
하지만 매개변수의 기본값을 지정하지 않기 때문에
처음부터 함수에 임의로 매개변수를 주거나
함수 매개변수 타입 앞에 required를 주어 입력 필수 값으로 지정해준다.
(쓰는이유 : 값만 보고 무슨 값인지 파악하기 어렵기 때문)
optional positional parameter : [ 타입? 이름 = 초기값]으로 매개변수를 받으면
함수를 사용할 때 []여기 안에 있는 매개변수는 넣지 않아도 된다.
QQ Operator : ??
참일때 실행 ?? 거짓일때 실행;
name ??= 값
name 이 널이면 값을 넣어준다.
typedef : 좀 더 간단한 데이터의 alias를 만들 때 사용한다
typedef ListofInts = List<int>;
List<int>라고 써야할 부분에 ListofInts라고 쓸 수 있다.
'Flutter' 카테고리의 다른 글
Flutter Do It으로 독학 (0) | 2023.04.14 |
---|---|
오류과정 (0) | 2023.04.10 |
flutter 설치하는 법 (0) | 2023.03.24 |
소개 (0) | 2023.03.24 |
Dart (class) (0) | 2023.03.24 |