For-verim bloğundaki bir scalada kontrol akışını merak ediyordum. Görüyorum ki tüm elementler ilk önce 'for' bölümünden sonra 'get' kısmını takip ediyor. Neden? öyle değil KodunuzScala-verim denetim akışı
scala> val list = List(1,2,3,4,5,6)
list: List[Int] = List(1, 2, 3, 4, 5, 6)
scala> :paste
// Entering paste mode (ctrl-D to finish)
val t = for {
i <- list
log = println("processing " + i)
} yield {
println("In yield for " + i)
i
}
// Exiting paste mode, now interpreting.
processing 1 //All of them first go through the for block
processing 2
processing 3
processing 4
processing 5
processing 6
In yield for 1 // yield comes after all
In yield for 2
In yield for 3
In yield for 4
In yield for 5
In yield for 6
t: List[Int] = List(1, 2, 3, 4, 5, 6)
Bu, ilk öğenizin türüne göre değişir. "List" yerine "Stream" i deneyin. – Dima
Bu yorumu detaylandırır mısınız? Denenmiş akışı ve sadece ilk elemanı işler. Neden liste böyle davranır merak ettiğim şeydir. – Richeek
"Liste bu paticular yolunu harekete geçirir", çünkü bu şekilde uygulanır. 'Stream', farklı bir şekilde uygulanır. ".toList" kelimesini ekleyerek "sadece ilk öğeyi işleyen" parçasının sonuna kadar – Dima