-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdart1
142 lines (91 loc) · 3.47 KB
/
dart1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Dart
## why dart?
플러터를 시작하기 전 Dart를 먼저 알아야한다
Dart란 구글에서 개발한 언어로 UI를 만드는데 적합한 언어임(그냥 구글이 플러터 개발에 편하려고 다트만듬ㅋㅋ)
윈도우, 맥, 리눅스에 관계없이 돌아감
다른 언어들은 구동 환경에 따른 바이너리가 필요하지만 darts는 just-in-time 방식임
→ 컴퓨터, 웹, 노트북, 앱에서 바로 실행하는 방식
null safety
→ 프로그램을 보다 안전하게 구동
---
## 기본 구조
```dart
void main() {
print('hello');
}
//다트의 기본 구조임 main으로 부터 시작된다
//파이썬과 다르게 세미클론 붙혀줘야함
//근데 일부러 세미클론 안붙히는 경우도 있으니 참고... 바람
```
## **VARIABLES**
### 1.1 var
```dart
void main() {
var name = 'zooci';
print(name);
//if nama = 1 이나 부울 값을 넣으면 작동이 안됨 -> 다트가 자동으로 name을 string타입으로 인식
// var이 아니여도 int, String 같은 타입을 지정할수 있다
}
```
→ 변수 설정시 var or 타입지정
### 1.2 Dynamic type
```dart
void main() {
var name;
name = 'zooci';
name = 12;
}
//변수를 미리 지정하지 않으면 Dynamic type으로 지정됨
// 따라서 어떤 형태의 변수를 넣어도 오류가 나지 않는다
```
### 1.3 **Nullable Variables == Null safety**
Null Safety
개발자가 null 값을 참조할 수 없도록 하는 것이다.
String뒤에 ?를 붙여줌으로서 name이 String 또는 null이 될 수 있다고 명시해준 것입니다.
기본적으로 모든 변수는 non-nullable(null이 될 수 없음)이다.
```dart
void main() {
String? name = "hello";
name = null;
}
//보통의 경우에는 name이 string으로 지정되어 있기에 null값을 넣으면 오류가 발생
//but String?의 형태로 입력하면 null값도 되고 String 값도 가능하다
```
### 1.4 **Final Variables**
final 변수 == 상수 개념
var대신 final로 변수를 만들게 되면 이 변수는 수정할 수 없게 된다. (딱 한 번만 설절될 수 있음)
자바스크립트의 const랑 비슷하다.
```dart
void main() {
final name = "pizza";
name = "ham"; // 수정 불가
final String username = "tom";
name = "tom2
```
### 1.5 **Late Variables**
late 변수
final이나 var앞에 붙혀줄수 있음
초기 데이터 없이 먼저 변수를 생성하고 추후에 데이터를 넣을 때 주로 사용한다.
flutter로 data fecthing을 할 때 유용하다.
late 변수를 만들고, API에 요청을 보낸 뒤에 API에서 값을 보내주면 그 응답값을 late변수에 넣어 사용할 수 있다.
```dart
void main() {
late final String name;
print(name); // name 변수에 접근 불가
}
//데이터 없이 변수를 설정하고 나중에 지정하는 방식
```
### 1.6 **Constant Variables**
const 변수
dart에서 const는 compile-time constant를 만들어준다.
const는 컴파일할 때 알고 있는 값을 사용해야 한다.
만약 어떤 값인지 모르고, 그 값이 API로부터 오거나 사용자가 화면에서 입력해야 하는 값이라면 그건 const가 아닌 final이나 var가 되어야 한다.
```dart
void main() {
const name = "tom"; // 컴파일 시점에 바뀌지 않는 값
final username=fetchAPI(); // 컴파일 시점에 바뀌는 값
}
```
const: 컴파일 시점에 바뀌지 않는 값 (상수)
final: 컴파일 시점에 바뀌는 값 (API에서 받아온 값, 사용자 입력값)
### 1.7