1. 데이터타입
var
num
final 동적으로 메모리에 할당
const 컴파일시점에 메모리에 할당(재사용많이 하는경우)
var items = ['d', 'e'] // List
var items = ['a', 'b', 'c', ..item]
var items = {1, 2, 3} // Set
var items = { // Map
'key1' : '1',
'key1' : '2',
'key1' : '3',
}
var a = 10;
var b = 3.5;
b = a as double; // 캐스팅
if(a is! int) {
print('정수');
}
var c
print(c ?? 50); // c가 NULL일경우 기본값50
print(c?.toLowerCase()); // c가 NULL이 아닐경우 실행
2. 함수
void something2() {
}
RaisedButton(onPressed: something2
// something2(참조 함수)
)
3. 객체
class Person {
String name; // public
int _age; // private
Person(this.name, {this.age});
String get age => '내 나이는 $_age';
void setName(String name) {
this.name = name;
}
void setAge(int age) {
this.age = age;
}
}
var person = Person('홍길동', age:10);
print(person.age);
// 한번에 Set
var person2 = Person()
..setName('홍길동')
..setAge(10);
// 필요한 기능만 가져오는방법(implement는 전부다 override해야함)
class Employee with Person {
@override
void setName(String name) {
}
}
4. 비동기
Future networkRequest() async {
await Future.delayed(Duration(seconds: 3)); // await을 사용해야 delayed함수를 기다림
}
5. StreamBuilder
//setState는 전체 build를 하지만 StreamBuilder는 부분빌드를 함
int _counter = 0;
var _counterController = StreamController<int>()..add(0);
void _increamentCounter() { // 버튼클릭시 호출
_counter++;
_counterController.add(__counter);
}
StreamBuilder<int>(
stream _counterController.stream,
builder: (context, snapshot) {
return Text(
'${snapshot.data}',
style: Theme.of(context).textTheme.display1,
)
}
),
'DEV > Flutter' 카테고리의 다른 글
VSCode로 Flutter 시작하기 (0) | 2020.09.06 |
---|---|
내비게이션 (0) | 2020.08.03 |
위젯 (0) | 2020.08.03 |
프로젝트 시작하기 (0) | 2020.08.03 |
Flutter & 안드로이드 스튜디오 설치 (0) | 2020.07.28 |