DART 시작하기
Dart는,
dart는 flutter를 하기 위해 꼭 배워야 하는 언어이다.
안드로이드 스튜디오, IntelliJ IDEA, VS Code에서 dart를 지원한다.
공식 사이트는 아래와 같다.
Dart programming language
Dart is a client-optimized language for fast apps on any platform
dart.dev
또한 공식 사이트에서 아래와 같이 효과적인 프로그래밍에 대한 가이드라인을 정의 해두었으니, 참고 할 수 있다.
https://dart.dev/guides/language/effective-dart
Effective Dart
Best practices for building consistent, maintainable, efficient Dart libraries.
dart.dev
1. 언어의 기본, 출력!
print('Hello, World!');
flutter로 개발 하면서 디버깅 용으로 출력 하려면
debugPrint("hello world debug");
으로 출력 할 수도 있다.
swift, Kotlin 을 쓰다 dart를 배운다면, ; (세미콜론)을 자주 빼먹을 수 있다... (경험담)
선언된 변수를 출력 하려면 어떻게 해야하는가?
print('$num');
debugPrint('${num.toString()}');
$변수 / ${변수}
$변수 : 바로 뒤에 오는 변수만 출력
${변수} : { } 안에 든 명령문 모두 실행
2. 언어의 기본, 변수 선언!
dart는 타입 추론이 가능한 언어이다.
따라서
var 변수명 = 값;
dynamic 변수명 = 값;
이렇게 초기화 할 수 있다.
하지만, 꼭 필요한 때를 제외하고는 권장 되지 않는다.
그럼 타입은 어떻게 선언 할 수 있을까.
String name = "홍길동";
int num = 10;
double pi = 3.14;
bool isBool = true;
그렇다면 초기 값 없이 변수 선언만 하고 싶다면?
var variable;
String name;
int num;
double pi;
bool isBool;
그렇다면 var는 무슨 타입인 걸까?
print("variable ${variable.runtimeType}"); // variable Null
variable = 3;
print("variable ${variable.runtimeType}"); // variable int
variable = '2';
print("variable ${variable.runtimeType}"); // variable String
그렇다면 dynamic은?
dynamic dynamicsVariable;
print("dynamicsVariable ${dynamicsVariable.runtimeType}"); // dynamicsVariable Null
dynamicsVariable = false;
print("dynamicsVariable ${dynamicsVariable.runtimeType}"); // dynamicsVariable bool
dynamicsVariable = "false";
print("dynamicsVariable ${dynamicsVariable.runtimeType}"); // dynamicsVariable String
dynamicsVariable = 1;
print("dynamicsVariable ${dynamicsVariable.runtimeType}"); // dynamicsVariable int
dynamicsVariable = 1.1234;
print("dynamicsVariable ${dynamicsVariable.runtimeType}"); // dynamicsVariable double
- Non-Nullable 과 Nullable
변수는 기본적으로 모두 Non-Nullable 타입으로 선언 된다.
즉, 선언 후 null을 넣을 수 없다는 것
그렇다면 Nullable 타입은 어떻게 선언 할까?
var? variable; // 에러 발생
String? name;
int? num;
double? pi;
bool? isBool;
var 는 null을 허용 하지 않는다.
Null safety 때문인데, 자세한 점은 아래의 링크에서 참고 할 수 있다.
Sound null safety
Information about Dart's null safety feature
dart.dev
3. 언어의 기본, 상수 선언!
- 값을 바꿀 수 없는 변수 : 상수
final / const
위 키워드를 사용하면,
final int intFinal = 100; // 타입 생략 가능
final intFinal2 = 100;
const int intConst = 100; // 타입 생략 가능
final intConst2 = 100;
intFinal = 10; // Can't assign to the final variable error
intConst = 10; // Can't assign to the const variable error
이렇게 변할 수 없는 상수를 선언 할 수 있다.
그렇다면 final 과 const 는 무슨 차이가 있는걸까?
간단하게 말해서
const는 컴파일에서 상수가 된다.
const는 생성자에서 초기화 할 수 없다.
final은 생성자에서 값을 받아 할당 할 수 있다.
즉 const는 런타임에 값을 넣을 수 없고
final은 런타임에 값을 넣을 수 있다. (한가지의 값)
vsCode나 안드로이드 스튜디오에서 문법 교정이 잘 되지만,
- final, const의 차이를 이해 하고,
- 변수 타입을 지정하고 초기화 하고,
- Nullable 을 선언 하는 방법
을 기억한다면, 보다 매끄러운 코딩이 될 것같다.
'develop > Flutter' 카테고리의 다른 글
[Flutter] VSCode flutter 프로젝트 생성하기 (0) | 2022.10.29 |
---|---|
[Flutter] dart class 선언하기 & 생성자 (0) | 2022.10.27 |
[Flutter] markdown Viewer 만들기 (0) | 2022.10.25 |
[Flutter] Navigator.of(context) .push / .then 화면 전환 보낸 화면에서 데이터 받기 (0) | 2022.10.19 |
[Flutter] dart List선언하기 하기 (dart 기초 2-1) (0) | 2022.10.17 |