노마드코드 다트 노트이기때문에 참고만 하시기 바랍니다.
1.0 Hello World
main함수
main함수는 모든 Dart 프로그램의 Entry point이다.
main 함수에서 쓴 코드가 호출된다. (만약 main이 없다면 실행이 되지 않음)
dart는 자동으로 세미콜론을 붙여주지 않기 때문에 직접 붙여야 한다. (일부러 세미콜론을 안 쓸 때가 있기 때문)
```
void main(){
print("hello world");
}
```
1.1 The Var Keyword
변수를 만드는 2가지 방법
```
void main() {
var name = "pizza"; // 방법 1
String name = “chicken"; // 방법 2
name = “chicken “;
}
```
함수나 메소드 내부에 지역변수를 선언할 때는 var를 사용하고
class에서 변수나 property를 선언할 때는 타입을 지정해준다.
1.2 Dynamic Type
Dynamic 타입
여러가지 타입을 가질 수 있는 변수에 쓰는 키워드이다. (해당 변수의 타입을 알 수 없을 때 주로 사용)
변수를 선언할 때 dynamic을 쓰거나 값을 지정하지 않으면 dynamic 타입을 가진다.
```
void main(){
dynamic name;
var name2;
}
```
1.3 Nullable variable
Null Safety
개발자가 null 값을 참조할 수 없도록 하는 것이다.
String뒤에 ?를 붙여줌으로서 name이 String 또는 null이 될 수 있다고 명시해준 것입니다.
기본적으로 모든 변수는 non-nullable(null이 될 수 없음)이다.
```
void main() {
String? name = "hello";
name = null;
}
```
1.4 Final Variables
final 변수
var대신 final로 변수를 만들게 되면 이 변수는 수정할 수 없게 된다. (딱 한 번만 설절될 수 있음)
자바스크립트의 const랑 비슷하다.
```
void main() {
final name = "pizza";
name = "ham"; // 수정 불가
final String username = "tom";
name = "tom2"; // 수정 불가
}
```
1.5 Late Variables
late 키워드를 사용하지 않고 아래와 같이 하더라도 나중에 변수에 값을 할당 할 수 있는거 같은데, late를 굳이 쓰는건 명시적으로 하기 위해서 인가요?
ex)
void main() {
final name;
name = 'nico';
}
1.6 Constant Variables
const 변수
dart에서 const는 compile-time constant를 만들어준다.
const는 컴파일할 때 알고 있는 값을 사용해야 한다.
만약 어떤 값인지 모르고, 그 값이 API로부터 오거나 사용자가 화면에서 입력해야 하는 값이라면 그건 const가 아닌 final이나 var가 되어야 한다.
```
void main() {
const name = "tom"; // 컴파일 시점에 바뀌지 않는 값
final username=fetchAPI(); // 컴파일 시점에 바뀌는 값
}
```
const: 컴파일 시점에 바뀌지 않는 값 (상수)
final: 컴파일 시점에 바뀌는 값 (API에서 받아온 값, 사용자 입력값)
1.7 Recap
변수를 만드는 2가지 방법
```dart
void main() {
var name = "pizza"; // 방법 1
name = "chicken ";
String name2 = "chicken"; // 방법 2
}
```
final: 값을 재할당하지 못하는 변수를 만듦
dynamic type: 어떤 타입의 데이터가 들어올 지 모를 때 사용함
const: 컴파일 할 때 값을 알고 있는 변수
final: 런타임 중에 만들어질 수 있는 변수
late: final, var, String같은 것들 앞에 써줄 수 있는 수식어로서 어떤 데이터가 올 지 모를 때 사용한다.
'IT > 코딩' 카테고리의 다른 글
JS 복습 - JS 근본 (0) | 2023.02.16 |
---|---|
Dart - DataTypes 그냥 데이터타입 속성 이야기 #2 (0) | 2023.02.08 |
JS공부하기 싫은 당신을 위한 초간단 기초 (0) | 2022.11.16 |
HTML 기본 (0) | 2022.10.09 |
HTML CSS 그리고 JS (0) | 2022.10.05 |