#Dart 가 설치되어 있지 않을 경우 https://dartpad.dev/ 에서 편하게 실행해볼 수 있습니다.
Hello World
모든 코드는 main 함수 안에 들어가야합니다.
void main() {
print('Hello World!');
}
hello world 를 실행하는 방법은 파이썬과 동일하지만 마지막에 세미콜론(;)을 붙여줘야 한다는 점이 다릅니다.
변수
변수의 설정할 때에는 var 를 사용하거나 직접 변수의 타입을 지정할 수 있습니다. 이후에는 변수 수정시 동일한 타입으로 해야합니다.
void main() {
var name = 'dahy';
String name = 'dahy';
}
1. dynamic
dynamic은 일반적으로 사용을 권장하지는 않으나 타입을 모를 때와 같이 특정한 상황에서 사용하기 유용합니다.
dynamic의 경우 아래 코드처럼 조건문을 통해서 타입을 확인하게 된다면 해당 타입의 변수로 사용할 수 있습니다.
(dynamic name => String name)
void main() {
dynamic name;
if (name is String){
name.
}
}
2. Null safety
null safety는 코드를 작성할 때 변수 혹은 데이터가 null이 될수도 있음을 명시하는것을 말합니다. 아래코드는 name 이 null 이기 때문에 에러가 발생합니다
void main() {
String name = 'dahy';
name = null;
}
null을 사용해야 하는 경우에는 아래와 같이 타입 뒤에 {?} 을 붙여주면 됩니다. 즉 name은 String이 될수도 있고 null이 될수도 있다라는 뜻입니다.
Q: 스트링?? 스트링이 맞아???
A : 일수도 있고 아닐수도 있어.
void main() {
String? name = 'dahy';
name = null;
}
void main() {
String? name = 'dahy';
if( name != null){
print( name);
}
}
------------------------------------
output:
dahy
3. final
변수를 변경하지 못하게 할 경우에는 아래와 같이 final 을 붙이면 됩니다.
void main() {
final name = 'dahy';
}
4. late
late 는 final 이나 var 앞에 붙여줄 수 있으며 변수에 데이터가 없는 상태로 변수를 만들수 있습니다. 이러한 기능은 flutter에서 API와 작업할 때 매우 유용하게 사용할 수 있습니다. ex) api 요청한 값을 late 가 지정된 변수에 담을 때
void main() {
late final String name;
}
5. const(compile-time constant)
const는 final 과 같이 변수를 변경할 수 없는 것은 동일하지만, const는 컴파일 할 때 알고 있는 값을 사용하는 것이 final과 다릅니다. 예를 들면 앱을 컴파일하고 앱스토어에 올릴 때 이미 api_key의 값을 알고 있다면 const를 사용하시면 되고, 만약 모른다. 사용자가 직접 키를 넣어야한다면 final을 사용하시면 됩니다.
void main() {
const api_key= 'abc1234';
}
2023.02.12 - [App] - [For Flutter] Dart 기본문법 #1 변수
2023.02.13 - [App] - [For Flutter] Dart 기본문법 #2 자료구조
2023.02.13 - [App] - [For Flutter] Dart 기본문법 #3 함수
2023.02.13 - [App] - [For Flutter] Dart 기본문법 #4 Class
이 글은 '노마드코더'의 Flutter 앱 개발을 위한 Dart 배우기 강의를 바탕으로 작성됐습니다.
아래 링크를 통해서 무료로 수강할 수 있습니다.
https://nomadcoders.co/dart-for-beginners
'App' 카테고리의 다른 글
[For Flutter] Dart 기본문법 #4 Class (0) | 2023.02.13 |
---|---|
[For Flutter] Dart 기본문법 #3 함수 (0) | 2023.02.13 |
[For Flutter] Dart 기본문법 #2 자료구조 (0) | 2023.02.13 |
Dart 프로그래밍 언어 소개 (0) | 2023.02.12 |
flutter doctor 명령어 2가지 issue 정리 (0) | 2023.02.11 |
댓글