Cangjie_倉頡程式設計-迭代器

辰令發表於2024-11-16

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函式族

相關文章