해결된 질문
작성
·
9
1
ListView.Builder에서 Map 데이터를 사용을 할때
final List<Map<String, String>> menu = const [
{
"ko": "추천",
"en": "Recommend",
"imgUrl": "https://i.ibb.co/SwGPpzR/9200000003687-20211118142543832.jpg",
},
{
"ko": "리저브 에스프레소",
"en": "Reserve Espresso",
"imgUrl": "https://i.ibb.co/JHVXZ72/9200000003690-20211118142702357.jpg",
},
{
"ko": "리저브 드립",
"en": "Reserve Drip",
"imgUrl": "https://i.ibb.co/M91G17c/9200000003693-20211118142933650.jpg",
},
{
"ko": "콜드브루",
"en": "ColdBrew",
"imgUrl": "https://i.ibb.co/jyZK4C9/9200000003696-20211118143125337.jpg",
},
];
final item = menu[index % menu.length];
이부분이 이해가 안갑니다.
자세한 설명좀 부탁드리겠습니다~
답변 1
1
안녕하세요.
Dart에서 5 % 3
는 5를 3으로 나눈 나머지이므로 2가 반환됩니다. index % menu.length
이라고 하면 index를 menu 배열의 길이로 나눈 나머지로 항상 배열의 개수보다 작은 값이 반환됩니다.
따라서 배열의 원소 개수가 5개인 경우 index가 5 이상인 경우 out of index 에러가 발생하지만, 위와 같이 index % menu.length
를 사용하시면 항상 4이하의 값만 반환되므로 index가 아무리 커도 out of index 문제가 발생하지 않으며 배열을 순환하는 효과를 구현할 수 있습니다.
감사합니다 :)