Vài ghi chép về iterator trong javascript

     
March 1, 2020March 1, 20trăng tròn Phạm Tâm TháiHọc lập trình4 Comments on Tìm phát âm về Iterable, Iterator cùng Generator vào Python
*

lúc tìm hiểu phương pháp áp dụng những kiểu dáng dữ liệucó nhiều phần tử nhỏng array, danh sách, v.v. trong những ngôn ngữ lập trình sẵn tiến bộ,họ thường gặp mặt những trường đoản cú khóa nlỗi Iterable, Iterator, Enumerator … Dù rằng cáccó mang vị những từ bỏ khóa này giới thiệu chưa hẳn là phức hợp lắm, cơ mà đôi khichúng đang gây nên “nhức đầu, chóng mặt” cho những lập trình sẵn viên new. Vì vậy, chúngta đã mày mò các khái niệm này một biện pháp cụ thể vào bài viết này.

Bạn đang xem: Vài ghi chép về iterator trong javascript

Chúng ta sẽ bắt đầu với một sự việc nhập môn: ví như được thử khám phá nhằm thiết kế một đoạn mã để ưng chuẩn tuần từ qua phần đông phần tử trong một tập hòa hợp những phẩn tử, các bạn sẽ làm cho nắm nào?

Với Pyeo hẹp, đây là công việc rất đơn giản dễ dàng, bọn họ đã thực hiện vòng lặp for như sau:


days = <"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun">for day in days: print(day)
1
2
3
days = <"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun">
for day in days:
print(day)

Tiếp theo, chúng ta sẽ có được một vấn đề kháthú vị: trường hợp được thưởng thức để gia công quá trình như trên cơ mà không sử dụng kết cấu lặpfor, bạn sẽ làm cố nào?

Là một xây dựng viên, chắc hẳn rằng điều trước tiên chúng ta suy nghĩ cho là một vòng lặp bao gồm điều kiện theo truyền thống cuội nguồn tương tự nlỗi đoạn mã dưới đây:


days = <"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun">i = 0while i
1
2
3
4
5
days = <"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun">
i = 0
while i len(days):
print(days)
i += 1

Đây là cú pháp khởi nguồn từ ngôn ngữ C. Tuy nhiên, nếu như áp dụng cấu trúc lặp này vào Pythanh mảnh, bọn họ đang khám phá ra rằng nó chỉ vận động cùng với một số trong những kiểu dáng dữ liệu nhất mực nlỗi danh sách (danh sách hoặc mảng), string (chuỗi) tuy vậy lại không chuyển động được với một trong những hình dạng dữ liệu như thể dictionary (từ điển) hoặc phối (tập hợp). ví dụ như nlỗi khi sử dụng cấu tạo lặp này với cùng 1 phối, họ vẫn gặp lỗi nhỏng sau:


1
2
3
4
5
6
7
8
9
... print(days)
... i += 1
...
Tracebachồng (most recent gọi last):
File "", line 2, in module>
TypeError: "set" object is not subscriptable

Theo lưu ý của thông tin lỗi từ đoạn mãtrên, vụ việc là do giao diện dữ liệu “set” ko cung cấp mang lại index (chỉ mục). Nếuđối chiếu kỹ rộng, chúng ta đang thấy rằng các thứ hạng dữ liệu có không ít phẩn tử có sẵnvào Python được tạo thành nhì nhóm: tài liệu giao diện tuần từ bỏ (sequence) cùng tập hợp(collection). Về thực chất, những dữ liệu loại sequence là các tài liệu nhưng mà những phầntử trong những số đó được lập chỉ mục hoặc hiểu nôm na là được đặt số sản phẩm từ trường đoản cú 0 mang lại n(cùng với n là độ lâu năm của tập thể nhóm trừ đi 1). Còn các dữ liệu kiểu dáng tập phù hợp là các dữ liệukhông có chỉ mục. Trong Python, list (list), chuỗi (string) với tuples làcác loại dữ liệu thuộc team trước tiên. Còn các mẫu mã tài liệu từ điển(dictionary), tập đúng theo (set) cùng một vài vẻ bên ngoài tài liệu khác nằm trong đội sản phẩm công nghệ nhì.

Xem thêm: 19 Kiểu Tóc Của Minh Hằng Đẹp Hết Phần Thiên Hạ, Chọn Kiểu Tóc Đẹp Như Minh Hằng Cho Buổi Hẹn Hò

Vậy làm sao chúng ta cũng có thể tạo thành một cấutrúc lặp hoàn toàn có thể thừa qua số lượng giới hạn này với có thể áp dụng cho cả nhị nhómsequence lẫn collection? Để làm cho được điều này, chúng ta yêu cầu phát âm về phương pháp duyệttuần trường đoản cú qua những định nghĩa iterable cùng iterator.

Iterable là gì?

Hiểu một bí quyết dễ dàng và đơn giản, một iterable trongPythanh mảnh là 1 đối tượng người tiêu dùng cho phép bạn chuẩn y qua những bộ phận của chính nó với vòng lặpfor.

Xem thêm: Lucy Heartfilia Yêu Ai Ry Tail, Lucy Heartfilia Yêu Ai

Các đối tượng người sử dụng iterable không nhất thiết phải gồm chỉmục, không nhất thiết phải bao gồm độ dài, thậm chí còn không nhất thiết phải hữu hạn. Đặc điểm tươngđồng duy nhất của các đối tượng người sử dụng này là chúng có chứa nhiều hơn 1 phần tử.


Chuyên mục: Tin Tức