Flutter

[Flutter] 문법 정리

Hoo_Dev 2022. 12. 22. 11:15

* 추후 수정 예정 ...

-----------------------------

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;