Python迭代器
遍歷一個集合
迭代器 和 for 迴圈 for (let i = 0; i < arr.length; i++)
其中最主要的差別就是:是否透過索引來訪問集合
for in
迭代協議
是指物件必須實現兩個特殊的方法,即__iter__() 和 next(),以便能支援迭代操作
Cangjie迭代器
Iterator<T> 該類表示迭代器,提供 next 方法支援對容器內的成員進行迭代遍歷
Iterable<E>該介面表示可迭代,實現了該介面的型別(通常為容器型別)可以在 for-in 語句中實現迭代,
也可以獲取其對應的迭代器型別例項,呼叫 next 函式實現迭代。
for-in 表示式用於遍歷擴充套件了迭代器介面 Iterable 的型別例項。在Cangjie中,for-in 適用於遍歷陣列、元組等資料型別
std 模組std.collection 包函式
Rust 迭代器
中的 for 迴圈是編譯器提供的語法糖,最終還是對迭代器中的元素進行遍歷
迭代器之所以成為迭代器,就是因為實現了 Iterator 特徵,
要實現該特徵,最主要的就是實現其中的 next 方法,該方法控制如何從集合中取值,最終返回值的型別是關聯型別
next 方法對迭代器的遍歷是消耗性的,
Golang迭代器
Go1.23 新特性:迭代器
for range
支援使用者定義容器型別的 for-range 和標準化形式的迭代器
Go 中,yield 關鍵字的引入使得函式可以像迭代器一樣工作
Swift
迭代器(Iterators) 和序列(Sequences) 組成了 Swift 中 for 迴圈的基礎部分
Kotlin ,
可以使用iterator()函式來獲取集合的迭代器,並使用next()來獲取下一個元素
R語言
R語言有三種方式實現迴圈: (1)for迴圈、while迴圈 (2)apply函式族