Flutter에서 ListView를 다른 소스로 채우려 고합니다. 그래서 두 개의 목록이 있습니다.
list1 = ['a', 'b', 'c']; #The list isn't of numeric type
list2 = ['2', '4'];
이제 spread
연산자를 사용하여 결합하고 다음 출력을 얻을 수 있습니다.
[a, b, c, 2, 4]
하지만 출력이 다음과 같기를 바랍니다.
[a, 2, b, 4, c]
이것이 어떻게 달성 될 수 있습니까? 가장 관용적 인 접근 방식은 무엇입니까?
Builtin Iterable
에는 메소드 zip
가 없지만 다음과 같이 작성할 수 있습니다.
Iterable<T> zip<T>(Iterable<T> a, Iterable<T> b) sync* {
final ita = a.iterator;
final itb = b.iterator;
bool hasa, hasb;
while ((hasa = ita.moveNext()) | (hasb = itb.moveNext())) {
if (hasa) yield ita.current;
if (hasb) yield itb.current;
}
}
그런 다음 사용 zip
final list1 = ['a', 'b', 'c'];
final list2 = ['2', '4'];
final res = zip(list1, list2);
print(res); // (a, 2, b, 4, c)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다