Flutter 찍먹하기 시리즈 -1

헤이즐·2023년 10월 14일
0

이 글은 골든래빗 《코드팩토리의 플러터 프로그래밍》의 1장 써머리입니다

Dart란?

Dart는 모든 플랫폼에서 빠른 앱을 개발하기 위해 클라이언트에 최적화된 언어다.

Dart의 특징이자 장점은 아래와 같다

Dart 기초 문법

main 함수

void main(){
}
  • ( )로 매개변수 지정해 받아오기 가능

print( ) 함수

void main(){
pring('Hello Hazel)
}

-문자열 콘솔에 출력

다양한 변수 타입

  • var -[기본형식] var 변수명 = 값;

    • 자동 타입추론 기능 제공 -값 변경 가능 , 중복 선언 불가능
  • dynamic

    • 변수의 타입을 자유롭게 선언 가능
  • 상수 final / const

    • final (런타임 상수) - const (빌드타임 상수)
    void main(){
    final DateTime now = DateTime.now();
    const DateTime now = DateTime.now();
    }
  • 해당 코드 실행시 const에서 에러가 발생한다 (const는 빌드될 때 값이 확정되기 떄문)

변수 타입

변수타입
string : 문자열int : 정수
double : 실수bool : 불리언

컬렉션

  • 여러 값을 하나의 변수에 저장할 수 있는 타입

List타입

  • 리스트 타입은 여러값을 순서대로 한 변수에 저장할 때 사용된다.
    리스트명[인덱스] 형식으로 특정원소에 접근이 가능하다.

add( )

void main() {
List<String> flutterStudy = ['베짱이','Hun','Jake','이지훈'];
print(flutterStudy);
flutterStudy.add('헤이즐');
print(flutterStudy);
}
  • When? List에 값을 추가할 때 사용
  • How? 추가하고 싶은 값을 매개변수에 입력한다.

Where( )

void main() {
final HunflutterStudy = flutterStudy.where(
(name) => name == 'Hun' || name == '이지훈',
);


print(HunflutterStudy);
print(HunflutterStudy.toList());
}
  • When? List에 있는 값을 순회하며 조건을 충족시키는 값만 필터링하는데 사용
  • How? 매개변수에 함수를 입력하면, 입력된 함수는 기존값을 하나씩 매개변수로 받음. True일시에는 값을 유지하고 false일시 값을 버린다.

map()

void main() {
List<String> flutterStudy = ['베짱이','Hun','Jake','이지훈', '헤이즐'];
final allMembers = flutterStudy.map(
(name) => '스터디멤버 $name',
);
print(allMembers);
}
  • When? List에 있는 값을 순서대로 순회하며 값을 변경

  • How? 매개변수에 함수를 입력하면, 입력된 함수는 기존값을 하나씩 매개변수로 받음. 반환값이 현재값을 대체.

reduce()

void main() {
List<String> flutterStudy = ['베짱이','Hun','Jake','이지훈', '헤이즐'];
final allMembers = flutterStudy.reduce((value, element) => value + ',' + element);
print(allMembers);
}
  • When? List에 있는 값을 순서대로 순회하며 값을 쌓아가며 입력된 함수를 실행 (나머지 함수는 Iterable을 반환했으나 reduce 함수는 List 멤버와 같은 타입을 반환

  • How? 매개변수에 함수를 두개를 입력하면, 순회를 시작할 때 첫번째 매개변수(value)와 두번째 매개변수(element)를 각각 받는다. 첫 순회 이후 반환된 기존 값을 첫번째 매개변수에, 그 다음값을 두번째 매개변수로 입력 받으며 리스트 내부의 값들을 점차 더해가는 기능으로 사용한다.

fold( )

void main() {
List<String> flutterStudy = ['베짱이','Hun','Jake','이지훈', '헤이즐'];
final allMembers = flutterStudy.fold<int>(
0, (value, element) => value + element.length);
print(allMembers);
}
  • When? reduce() 함수와 실행논리는 똑같으나 reduce() 함수는 실행되는 요소의 타입이 일치해야한다면 fold() 함수는 어떤 타입이든 반환 가능.

  • How? 첫번째 매개변수에 시작할 값 지정, 두번째 매개변수에 작동하는 함수를 입력한다. 예시를 보면 value는 최초 순회때의 첫번재 값을 사용하고 element는 람다식으로 최초순회때 초기값인 0이 입력되고 이후에는 기존 순회 반환값을 받아온다.

Map

void main() {
Map<String, String> animals = {
'dog' : '강아지',
'cat' : '고양이',
'horse' : '말',
'rat' : '쥐',
 };

print(animals['dog']);
print(animals['cat']);
}
  • When? List가 순회와 순차의 방식으로 값을 받아온다면 Map은 지도에서 도착지와 출발지로 경로를 찾듯 키와 값의 짝을 저장해 원하는 값을 빠르게 찾는데 중점을 둔다.

  • How? Map<키의 타입, 값의 타입> 맵이름 형식으로 생성

Map 키, 값 반환

void main() {
Map<String, String> animals = {
'dog' : '강아지',
'cat' : '고양이',
'horse' : '말',
'rat' : '쥐',
 };

print(animals.keys);
print(animals.values);
}
  • Map 타입은 키와 값을 모두 반환받을 수 있다. 변수에 key와 value 게터를 실행하면 된다.

Set타입

void main() {
Set<String> flutterStudy = {'베짱이','Hun','Jake','이지훈', '헤이즐'};
print(flutterStudy);
print(flutterStudy.contains('헤이즐'));
print(flutterStudy.toList());

List<String> flutterMems = ['베짱이', 'Hun', 'Jake'];
print(Set.from(flutterMems));
}
  • When? 중복을 방지해 유일한 값들만 존재하는 것을 보장하기에 각 값의 유일함을 보장받고 싶을 때 사용

  • How? Set.toList를 사용하면 기존 데이터를 유지한채 Set을 List 타입으로 변환 가능하며, 키와 값을 따로 리스트로 받고 싶을 때는 Keys.toList(), values.toList()를 사용하면 된다.

Enum

enum Status{
approved,
pending,
rejected,
}
void main(){
Status status = Status.approved;
print(status);
}
  • When? 한변수의 값을 몇가지 옵션으로 제한하며, 선책지가 제한적일 때 사용된다.
profile
개발자를 꿈꾸며 하루하루 고군분투 중!

0개의 댓글