迭代器學習(一)

2022-01-24 11:53:05 字數 507 閱讀 2672

迭代器模式是行為模式的一種範例,行為模式是一種簡化物件之間通訊的設計模式。實際上,它允許你訪問乙個資料項序列中的所有元素,而無須關心序列是什麼型別--陣列、列表、鍊錶或者任何其他型別。它能非常有效地構建出乙個資料管道,經過一系列不同的轉換或過濾後再從管道的另一端出來,實際上,這也是linq的核心模式之一。

在.net中,迭代器模式是通過ienumerator和ienumerable介面及他們的泛型等價物來封裝的。如果某個型別實現了ienumerable介面,就意味著它可以被迭代訪問。呼叫getenumerator方法將返回ienumerator的實現,這就是迭代器的本身。可以將迭代器想象成資料庫的游標,即序列中的某個位置。迭代器只能在序列中向前移動,而且對於同乙個序列可能同事存在多個迭代器操作。

我們用的foreach語句實現了訪問迭代器的內建支援。foreach語句被編譯後會呼叫getenumerator和movenext方法,以及current屬性,加入idisposable也實現了,程式最後還會自動銷毀迭代器物件,這是乙個雖不起眼但是卻很有用的語法糖。

迭代器學習

1 乙個函式中需要有乙個 yield 語句即可將其轉換為乙個生成器 2 乙個生成器函式主要特徵是它只會回應在迭代中使用到的 next 操作。一旦生成器 函式返回退出,迭代終止。我們在迭代中通常使用的 for 語句會自動處理這些細節,所 以你無需擔心。3 迭代器是不可逆的 4 itertools 模 ...

迭代器學習筆記

本文是學習 stl原始碼剖析 時的學習筆記。迭代器是一種類,其包裝了原生指標,並過載了operator operator operator operator 等等,因此其行為類似指標。容器為了儲存各種型別的元素,定義為類模板。與此相似,為了使迭代器能夠指向不同型別的容器元素,迭代器也需要定義為類模板...

Python學習 迭代器

含義迭代的意思類似於迴圈,每一次重複的過程被稱為一次迭代的過程,而每一次迭代得到的結果會被用來作為下一次迭代的初始值 提供迭代方法的容器稱為迭代器,常用的迭代器 列表 元組 字串 字典。示例 1 字串 字串就是乙個容器,同時也是乙個迭代器,for 語句的作用就是觸發這個迭代器的迭代功能,每次從容器裡...