반응형
플러터는 Dart(다트)라는 언어로 작성합니다. 처음 플러터를 시작하려고 할 때 다트라는 언어를 또 배워야 한다는 것이 걸림돌이 된다고 생각합니다. 하지만 다른 언어를 한 번이라도 해본 경험이 있다면 무리 없이 따라갈 수 있는 언어입니다.
다트 문법을 빠르게 포인트만 정리해보도록 하겠습니다.
main 함수
main함수는 앱이 시작되는 곳, 즉 처음에 호출되는 함수입니다. main 함수에 작성한 코드가 순서대로 실행됩니다.
void main() {
print("Hello World");
}
print 함수
콘솔에 출력을 할 수 있습니다. 자바스크립트 console.log와 같은 기능입니다.
void main(){
String hi = '안녕하세요';
print(hi);
}
변수 종류
다트에는 변수형은 int, double, String, bool, List, Set, Map 이 존재합니다.
int 형
int value =10;
double 형
double value = 2.29;
String 형
String value = '안녕하세요';
boolean 형
bool value1 = true;
bool value2 = false;
List 형
List<String> = ['a', 'b', 'c'];
Set형
Set<String> = {'a', 'b', 'c'};
Map형
Map<String, int> = {'a': 1, 'b': 2, 'c': 3}
상수 (final, const )
final은 컴파일후에 처리가 실행되고, const는 컴파일 시에 처리가 실행됩니다. 따라서 final에서는 상수 값에 변수를 할당할 수 있지만 const에서는 변수를 할당하면 에러가 발생합니다.
*플러터에서 child 위젯에 statelessWidget을 사용할때는 const로 선언해 줍니다. const로 선언한 위젯은 bulid 메소드로 다시 빌드할 필요가 없어지게 되므로 성능 향상으로 이어지게 됩니다.
final 한정자
final 로 선언할 때는 타입을 생략할 수 있습니다.
final String test1 = '문자열';
final test2 = '문자열';
const 한정자
final과 마찬가지로 const 선언할 때는 타입을 생략할 수 있습니다.
const String test1 = '문자열';
const test2 = '문자열';
함수
void형 함수, 인수 없을때
void hi() {
print('안녕하세요');
}
리턴 유형이 존재하는 함수
String getHello() {
return "안녕하세요";
}
명명된 파라미터를 이용하는 함수
void main() {
printHello(name: "Flutter");
printHello2();
}
void printHello({String? name}) {
print("Hello! $name");
}
void printHello2({String? name = "Dart"}) {
print("Hello! $name");
}
화살표 함수
void main() {
int added = add(num1: 1, num2: 2);
total(total: added);
}
int add({int num1 = 0, int num2 = 0}) => num1 + num2;
void total({int total = 0}) => print("합계는:$total");
콜백 함수
(){
print('');
}
() => print('');
연산자
- 산술 연산자: +, -, *, /, ~/, %, ++, --
- 대입 연산자: +=, -=, *=, /=, ~/=, %=
- 비교 연산자: >, >=, ==, <, <=, !=
- 논리 연산자:&&, ||, !
- 유형 테스트 연산자: is, is!
- 삼항 연산자: 판별식 ? A문 : B문
여기까지 읽어주셔서 감사합니다.
다음 글에서 이어서 문법 정리를 해나가도록 하겠습니다.
반응형
'모바일개발 > 플러터' 카테고리의 다른 글
[flutter] 플러터 Widget 트리, Element 트리, RenderObject 트리 (0) | 2022.03.20 |
---|---|
[flutter] 플러터를 위한 다트(Dart) 기초 문법 정리2 (0) | 2022.03.18 |
[flutter] 플러터 StatefulWidget 라이프 사이클 (lifecycle) (0) | 2022.03.16 |
[Flutter]플러터 Flexible과 Expanded 차이점 (0) | 2022.03.15 |
플러터 Timer 시계 만들기 (0) | 2022.03.14 |
최근댓글