[ 앱 개발자 도전기 : 크로스플랫폼_Flutter & Dart ]
기본 문법 간략 정리.
∇ Dart, 기본 문법 간략 정리.
목 차
1. void main()
2. 변수 설정
3. 함수 설정
4. List 생성
5. Map 생성
6. 조건문
Ⅰ. void main()
※ Dart를 실행시키면, 가장 먼저 볼 수있는 코드입니다.
dart는 코드를 볼 때 main 함수를 가장 먼저 실행시킵니다.
§ 그렇기에 class를 main 함수 밖에 만든 후에, 이를 main 함수 안에 넣어줘야 실행이 됩니다.
Ⅱ. 변수 설정.
int age = 30;
double height = 180.3;
num weight = 75.5; // num은 int와 double을 모두 커버할 수 있습니다.
height = age as double; // double과 int는 서로 할당이 불가능합니다. as를 통해 할당할 수 있습니다.
String name = 'minki';
bool isNight = false;
- 기본적으로 dart에서는 한번 선언된 변수 타입은 바꿀 수 없습니다.
- > 만약, 변수 타입을 지정하고 싶지 않다면 다음을 이용하여 변수를 설정하면 도비니다.
dynamic a = 10;
final b = 10; // final로 선언하면 변수 타입을 지정해주지 않아도 되지만 할당된 값을 바꾸지 못합니다.
const c = 'Happy'
※ const 와 final은 할당된 변수값을 바꿀 수 없다는 공통점이 있습니다.
const은 compile-time constants 로 런타임 동안이 아니여도, 컴퓨터가 이 상수에 할당된 값을 파악하고 있습니다.
☆ const는 메모리를 임의할당하는 변수-타입이고,
☆ final는 런타임 시에만 할당된 값을 확인하므로
메모리를 동적으로 할당하는 변수타입이라고 이해 가능합니다.
Ⅲ. 함수 설정.
※ 함수를 설정한 다음 적절한 변수 지정을 통해, 함수에 할당된 값을 호출할 수 있습니다.
void main(){
String greet = greeting();
int age = getAge();
print(greet);
print(age);
}
String greeting() {
return 'hello, uju !';
}
int getAge(){
return 29;
}
Ⅳ. List 생성.
※ List 생성법은 다른 언어와 유사한 방식입니다.
// 변수 타입 상관 없는 리스트 생성법
List samples = ['a', 2, 3.8];
samples.add('d'); // List에 값 추가
samples.add(30)
samples.remove('d'); // List 값 제거
// 변수 타입 지정 리스트 생성법
List<String> foods = ['우유', '라면', '고기'];
void main() {
// items1은 처음에 스트링만 넣었기 때문에 String으로 List 타입이 고정됨
var items1 = ['라면', '우유', '냄비'];
items1.add('사탕');
items1.add(1); // 에러 발생
print(items1); // [라면, 우유, 냄비, 사탕]
// items2는 스트링과 num이 섞여 있기 때문에 타입 고정이 안됨
var items2 = ['라면', '우유', 2];
items2.add('너구리');
items2.add(1);
items2.add(1.5);
print(items2); // [라면, 우유, 2, 너구리, 1, 1.5]
// list에 list를 추가하는 방법
var items3 = [...items1, ...items2, 5];
print(items3); // [라면, 우유, 냄비, 사탕, 라면, 우유, 2, 너구리, 1, 1.5, 5]
}
Ⅴ. Map 생성.
※ map은 json 타입과 유사한 형식으로 작성하면 됩니다.
void main() {
var itemMap = {
'key1' : 1,
'key2' : 2,
'key3' : 3,
};
print(itemMap['key1']); // 1
}
Ⅵ. 조건문.
※ 조건문도 마찬가지로, 다른 함수와 매우 유사합니다.
void main() {
// is not = !is
var coffee = 'americano';
if(coffee is String) {
print('문자열입니다.');
} else {
print('문자가 아님');
}
}
- 조건문은 ? 를 사용해서 더 쉽게 표현 가능합니다.
- ? 를 사용하는 코딩을 통해 Flutter 앱이 실행될 시 런타임을 죽이지 않을 수 있습니다.
● ?? : name이 null일 경우에만 수행.
● ? : name2가 null이 아닐 경우 수행.
void main() {
String name;
print(name ?? 'Null입니다.'); // Null입니다.
String name2 = 'ICECREAM';
print(name2?.toLowerCase()); // icecream
}