본문 바로가기

DEV/Flutter

다트 문법

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