* 추후 수정 예정 ...
-----------------------------
Flutter
문법
type
int → 정수형
double → 실수형
String → 문자형
var와 String의 차이
- var → 자동으로 형 유추
- String → 문자형
var와 dynamic의 차이
- dynamic은 형 변환이 자유로움 (var는 선언 후 다른 타입으로 변환이 불가능함)
- dynamic → 어떤 타입이든 넣을 수 있다.
List → map
- Map 변수명 = array.asMap()
map에서 key, value 꺼내기
- 변수명.keys
- 변수명.values
- 변수명.keys.toList() → 리스트 형태로 반환
- 변수명.keys.toList() → 리스트 형태로 반환
List → Set
Set 변수명 → Set.from(array)
where
void main(){
List<Map<String, String>> people = [
{
'name': '로제',
'group': '블랙핑크',
},
{
'name': '제니',
'group': '블랙핑크',
},
{
'name': 'rm',
'group': '블랙핑크',
},
{
'name': '뷔',
'group': '블랙핑크',
},
];
}
final blackPink = people.where( (x) => x['group'] == '블랙핑크' ).toList();
// 출력 -> [{'name': '로제', 'group': '블랙핑크'}, {'name': '제니', 'group': '블랙핑크'}]
reduce(누적 함수)
- 리스트의 타입과 리턴의 타입이 같아야 함
void main() {
List<int> numbers = [
1,
3,
5,
7,
9
];
final result = numbers.reduce((prev, next){
print('---------');
print('previous : $prev');
print('next : $next');
print('total : ${prev + next}');
return prev + next;
});
print(result);
}
// 출력
---------
previous : 1
next : 3
total : 4
---------
previous : 4
next : 5
total : 9
---------
previous : 9
next : 7
total : 16
---------
previous : 16
next : 9
total : 25
25
// 리턴 한 값이 prev에 계속 들어가게 됨
fold
- 리스트의 타입과 리턴의 타입이 다르게 가능
final sum = numbers.fold<int>(초기값, (누적값, 다음값) {});
nullable과 non-nullable (?가 핵심)
String name = '이건후';
name = null // 불가능
print(name);
String? name2 = '후건이';
name2 = null; // 이건 가능
print(name2)
// !는 null이 될 수 없음을 의미
final과 const
// final로 선언하면 다시 변수 변경 불가능
final String name = '이건후';
// const도 선언하면 다시 변수 변경 불가능
const String name2 = '후건이';
// 둘 다 타입 생략 가능
final name = '이건후';
const name2 = '후건이';
// 빌드 타임의 값을 몰라도 가능.
final DateTime now = DateTime.now();
// 빌드 타임의 값을 알고 있어야함 즉, 코드가 실행 되기 전엔 그 값을 알 수 없다.
const DateTime now = DateTime.now();
Operators
// number가 null이면 3.0으로 바꿔라 라는 뜻
number ??= 3.0;
'Flutter' 카테고리의 다른 글
[Flutter] TextField 위젯의 textAlignVertical 속성 (TextField 정렬) (0) | 2022.12.28 |
---|---|
[Flutter] 하단바, 페이지 하단에 떠 있는 버튼 위젯(FloatingActionButton) (0) | 2022.12.27 |
[Flutter] Calendar 구현(table_calendar 오픈소스 활용) (0) | 2022.12.26 |
[Flutter] 비동기 프로그래밍 (Future, Stream, async, async*, yeild, yeild*) (0) | 2022.12.22 |
[Flutter] Class와 Widget (0) | 2022.12.22 |