Iterator
özelliğine göre take
yönteminin davranışı hakkında kafam karıştı. Maddeleri tüketmiyor gibi görünüyor. bir scala Iterator öğesinden öğe tüketme
scala> Iterator(1,2,3)
res0: Iterator[Int] = non-empty iterator
scala> res0 take 2 toArray
res1: Array[Int] = Array(1, 2)
scala> res0.next
res2: Int = 1
Görünüşe 2 iki öğe tüketir adım, ancak 3. adımda
Iterator
ilk öğenin halen: İşte bir örnek. Uygulamaya baktığımda, herhangi bir kopyalama veya arabelleğe alma işlemini göremiyorum, sadece yeni bir
Iterator
wich delegesi altta yatan birine. Bu nasıl mümkün olabilir? Gerçekten
n öğelerini tüketmeyi nasıl yönetebilirim?
Teşekkürler retronym, ben noktayı görüyorum. "Aktarım" ın atılmamı sağlayan şey, "mevcut öğe işaretçisi" gibi bir şeyin olmamasıydı (bu arada, belki Java etkisi nedeniyle, sözde bir şeyden beklenen bir şey olabilir). Şimdi görüyorum ki, bir "drop" dizisi ile "geçerli işaretçiyi" alabiliyorum ve "başa" bakabiliyorum. Tekrar deneyeceğim. – jglatre