map 의 key 값에 해당하는 value 리스트에서 특정 index값 가져오기

pharmDev·2024년 12월 15일

해당 부분은 선택된 날짜(selectedDay)의 일정 리스트에서, 특정 인덱스(index)에 해당하는 하나의 일정을 가져오는 작업입니다. 아래처럼 이해할 수 있어요:


1. schedules[selectedDay]!

  • schedules는 날짜(DateTime)를 키, 일정 리스트(List<Schedule>)를 값으로 가지는 Map입니다.
  • selectedDay는 현재 사용자가 선택한 날짜입니다.
  • schedules[selectedDay]!selectedDay에 해당하는 일정 리스트를 반환합니다.

예를 들어:

selectedDay = DateTime.utc(2024, 3, 8);

// schedules[selectedDay]!의 결과:
[
  Schedule(
    id: 1,
    startTime: 11,
    endTime: 12,
    content: '플러터 공부하기',
    ...
  ),
  Schedule(
    id: 2,
    startTime: 14,
    endTime: 16,
    content: 'NestJS 공부하기',
    ...
  )
]

즉, 선택된 날짜의 모든 일정 리스트를 가져옵니다.


2. final selectedSchedules = schedules[selectedDay]!

  • schedules[selectedDay]!로 가져온 선택된 날짜의 일정 리스트selectedSchedules 변수에 저장합니다.
  • selectedSchedules는 이제 선택된 날짜에 해당하는 모든 일정이 담긴 리스트입니다.

예를 들어:

selectedSchedules = [
  Schedule(... 플러터 공부하기 ...),
  Schedule(... NestJS 공부하기 ...),
];

3. final scheduleModel = selectedSchedules[index]

  • selectedSchedules는 일정 리스트입니다.
  • index는 현재 몇 번째 일정을 가져올지를 나타냅니다.
  • 따라서 selectedSchedules[index]리스트의 특정 인덱스에 위치한 한 개의 일정을 가져옵니다.

예를 들어:

index = 0; // 첫 번째 일정
scheduleModel = selectedSchedules[0]; 
// 결과: Schedule(... 플러터 공부하기 ...)

index = 1; // 두 번째 일정
scheduleModel = selectedSchedules[1]; 
// 결과: Schedule(... NestJS 공부하기 ...)

최종 요약

  • schedules[selectedDay]!선택된 날짜의 모든 일정 리스트 가져오기
  • selectedSchedules[index]그 리스트에서 특정 인덱스의 한 개의 일정 가져오기

예시로 이해하기

가정: schedules 데이터는 아래와 같고, selectedDay2024-03-08입니다.

schedules = {
  DateTime.utc(2024, 3, 8): [
    Schedule(
      id: 1,
      startTime: 11,
      endTime: 12,
      content: '플러터 공부하기',
    ),
    Schedule(
      id: 2,
      startTime: 14,
      endTime: 16,
      content: 'NestJS 공부하기',
    ),
  ],
};

selectedDay = DateTime.utc(2024, 3, 8);

실행 과정:

  1. schedules[selectedDay]!:

    • 결과: [Schedule(... 플러터 공부하기 ...), Schedule(... NestJS 공부하기 ...)]
  2. selectedSchedules:

    • 결과: 동일한 리스트 [Schedule(...), Schedule(...)]
  3. selectedSchedules[0]:

    • 결과: 첫 번째 일정 Schedule(... 플러터 공부하기 ...)
  4. selectedSchedules[1]:

    • 결과: 두 번째 일정 Schedule(... NestJS 공부하기 ...)

결론

이 코드의 역할은 단순합니다.
선택된 날짜의 모든 일정 중, 특정 인덱스에 위치한 일정을 가져오는 작업입니다.

  • schedules[selectedDay]!: 선택된 날짜의 일정 리스트.
  • selectedSchedules[index]: 해당 리스트에서 특정 순서의 일정.

쉽게 말해, 리스트에서 "N번째 일정"을 꺼내는 작업이라고 보면 됩니다. 😊

profile
코딩을 배우는 초보

0개의 댓글