일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- git lab
- npm styled-reset
- react
- 컨디셔널 렌더링
- There isn’t anything to compare
- SCSS
- react typescript
- next.js css
- icon
- input type=file
- Git
- github io
- getModifierState
- typescript react
- bootstrap
- nextjs
- API 토큰
- createGlobalStyle
- nextjs .env
- ngrok실행
- react env
- nextjs 설치
- fetch
- ngrok설치
- CSS
- rewrites
- dart 변수
- github
- API token
- styled components
- Today
- Total
꾸준히 성장하는 개발자
[dart] dart 변수 본문
변수를 만드는 방법
var, 타입 지정
void main() {
var name = 'flutter';
String name2 = 'dart';
name='flutter2';
print(name);
print(name2);
}
함수나 메소드 내부에 지역변수를 선언할 때는 var를 사용
class에서 변수나 property를 선언할 때는 타입을 지정해 준다.
위처럼 작성했을 때는 업데이트가 가능하다.
단 처음 선언되어 있던 타입으로만 업데이트가 가능 string이었는데 int로 변경되진 않음
Dynamic 타입
//Dynamic 타입
void main() {
var name;
name='hello';
name=12;
print(name);
}
변수를 선언할 때 dynamic을 쓰거나 값을 지정하지 않으면 dynamic 타입을 가진다
여러 가지 타입을 가질 수 있는 변수이다.
위에서와 다르게 string으로 선언했다가 number로도 선언이 가능하다.
다양한 타입을 가질 수 있기 때문에 정말 꼭 필요할 때만 사용해야 한다!
Null safety
void main() {
String name = 'dart';
name=null;
// 에러 발생
}
null safety는 개발자가 null값을 참조할 수 없게 하는 것
만약 null 값을 참조해야 하는 경우에는 어떻게 해야 할까
아래처럼 ? 를 넣어주면서 null이 참조될 수 있음을 알려줘야 한다.
void main() {
String? name = 'dart';
name= null;
}
만약 ? 을 붙인 변수는 이 변수가 null인지 아닌지를 확인해야 한다.
final
void main() {
final name='flutter';
name='hello'; //에러 발생
}
var대신 final로 변수를 만들게 되면 이 변수는 수정할 수 없게 된다. (딱 한 번만 설정할 수 있음)
자바스크립트의 const랑 비슷하다.
late
void main() {
late final String name;
print(name); // 에러 발생
}
late는 초기 데이터 없이 변수를 선언해 준다
API에 요청을 보내 값을 받으면서 그 값을 late 변수에 넣어 사용할 수 있다.
위처럼 아직 값이 들어가기 전에는 접근할 수 없다고 에러를 보여준다.
const
dart에서의 const는 javascript의 const와 다르다
dart에서 const는 complie-time constant를 만들어준다
const와 fianl의 가장 큰 차이점은 컴파일이 되는 시점에 그 값을 알 수 있는지 없는지의 차이다
void main() {
const name = "tom"; // 컴파일 시점에 바뀌지 않는 값
final username=fetchAPI(); // 컴파일 시점에 바뀌는 값
}
const : 컴파일 시점에 바뀌지 않는 값 (상수)
final : 컴파일 시점에 바뀌는 값 (API에서 받아온 값, 사용자 입력값)