Dart 프로그래밍 1주차 1-9 ~ 1-13 (중간까지)
쇼핑몰 프로그램 개발 시작(필수 기능)
여러 개의 상수값을 나열한 자료. switch
문을 통해 다룰 수 있다.
if
문을 사용할 수도 있지만 열거형에는 switch
를 쓰는 편이 더 적절하다.
열거문을 출력하려면 values
를 통해 객체에 넣어준 후(이때 객체는 List<enumType>
으로 추론) 해당 객체를 출력해주면 된다.
index
가 존재한다.Set
은 중복값을 알아서 제거해주지면 enum
은 오류가 발생한다.values
를 통해 열거문을 List
에 넣어줄 수 있다. (이때 List<enumType>
으로 추론)클래스나 함수에서 데이터 타입을 일반화하는 기능
T GenericFunctionName<T> (매개변수) {}
List
, Set
, Map
도 제네릭이다.
함수의 연속으로 프로그램을 구성하는 방식. Method Chaining이라고도 부른다.
간단히 요약해서 변수를 따로 지정하지 않고도 함수에 빌트인 함수를 이어서 원하는 값을 찾거나 동작을 수행하는 프로그래밍을 말한다.
데이터를 다른 타입으로 변환하는 함수이다.
toString()
, int.parse()
, double.parse()
, toList()
, toSet()
, asMap()
등이 존재한다.Collection
타입의 요소를 다룰 때 사용하는 함수이다.
map
: 각 데이터마다 특정 기능을 적용한 새로운 데이터를 반환한다.where()
: 특정 조건에 참인 요소만 필터링한 새 데이터를 반환한다.firstWhere()
/lastWhere()
: where()
에 해당되는 요소 중 첫 번째/마지막 요소를 반환한다.reduce()
: 데이터의 요소들을 하나의 값으로 결합한다. 어떤 동작을 적용할지 return
으로 지정할 수 있다.fold()
: reduce()
와 같은 기능이지만 초기값(reduce에서는 0번 인덱스)을 지정해줄 수 있어서 빈 데이터에도 사용이 가능하고, 기존 데이터와 다른 타입의 결과물도 반환할 수 있다.오늘 구현한 내용은 다음과 같다.
- Product 클래스
- main 함수
- 사용자에게 노출되는 기본 메뉴 화면
- 사용자가 전달하는 명령어(1, 2, 3, 4)를 받아오는 코드
- 동작을 지정하는
switch
문을while
로 반복- 프로그램 종료 기능, 종료 시 한 번 더 묻는 기능
- Shoppingmall 클래스
- 생성자, 판매하는 물건 목록 입력
- 판매하는 물건 목록을 보여주는 showProducts() 함수
- 금액 총합을 보여주는 showTotal() 함수
addToCart() 함수의 경우 예외 처리가 필요하기 때문에 1-17 강의를 들은 후에 구현하기로 했다.
필수 기능 1번 : 판매하는 상품 목록
필수 기능 2번 : 상품을 장바구니에 추가
필수 기능 3번 : 금액 총합 출력
필수 기능 4번 : 프로그램 종료
도전 기능 1번 : 프로그램을 종료할지 한 번 더 묻는 기능
도전 기능 2번 : 장바구니 초기화
도전 기능 3번 : 장바구니 상품 목록+금액 총합 출력
도전 기능 4번 : 자유롭게 기능 추가
각 상품별로 몇 개씩 장바구니에 들어있는지 출력하는 기능을 만들어보고 싶다. (ex. 양말 4개)
앱으로 만들어주세요