在Java中,迭代器有一個hasNext()
方法(如果我記得正確 - 從我用Java編程已經很長時間了,所以細節可能會關閉)。當你在遍歷一個迭代器時,你查詢hasNext()
看看你是否應該停止。爲什麼Python使用異常來管理迭代器,爲什麼不使用其他語言?
在Python中,沒有hasNext()
,而迭代器在它們想要發出信號表示應該停止時反而會引發StopIteration
異常。爲什麼區別?
我可以想象,不需要hasNext()
爲執行迭代器的人減少了工作;在那種情況下,爲什麼Java和其他語言使用它?這是哲學上的差異,還是由於某種原因在Python中更容易/更快的異常?
相關:http://programmers.stackexchange.com/questions/112463/why-do-iterators-in-python-raise-an-exception –
@ajcr:謝謝!我會在未來首先查看程序員的這些問題。我覺得這個問題不是我們現在標記爲重複的東西的副本,但它是您鏈接上的問題的重複(現在我已經開悟了)。我們可以改變它爲後代? –
我投票結束這個問題作爲題外話,因爲它是關於語言設計,這是更適合(和[已經回答](http://programmers.stackexchange.com/questions/112463/why-do-iterators -in-python-raise-an-exception))關於程序員。 – Matt