ZIO Birleştirme
flatMap ve for
ZIO Birleştirme, CoddyKit'te ücretsiz bir Scala for Backend Engineering & Functional Programming dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Scala for Backend Engineering & Functional Programming öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Scala for Backend Engineering & Functional Programming kursu toplamda 4 dersten oluşur.
flatMap ile Sıralı Çalıştırma
ZIO bir monaddır; bu nedenle flatMap, her adımın önceki sonucu kullanabildiği etkileri birbirine bağlar. Hata ve ortam türleri otomatik olarak birleştirilir.
import zio._
val prog =
ZIO.succeed(10).flatMap(n => Console.printLine(s"n = $n"))for ifadesi
for ifadesi, ZIO etkilerini sıralı şekilde çalıştırmanın deyimsel yoludur; saf kalırken zorunlu kod gibi okunur.
import zio._
val prog = for {
_ <- Console.printLine("Enter name:")
name <- Console.readLine
_ <- Console.printLine(s"Hello, $name")
} yield ()Hata Türlerini Birleştirme
Farklı hata türlerine, E1 ve E2'ye sahip iki etkiyi birleştirdiğinizde ZIO, ortak üst tür olan en küçük üst sınırı, yani E1 with E2'yi çıkarır; bu tür genellikle Throwable veya mühürlü bir özelliktir.
zip ve zipPar
zip, iki etkiyi sıralı olarak bir demet hâlinde birleştirir. zipPar ise bunları ayrı fiber'larda eşzamanlı olarak çalıştırır.
import zio._
val seq: UIO[(Int, Int)] = ZIO.succeed(1).zip(ZIO.succeed(2))
val par: UIO[(Int, Int)] = ZIO.succeed(1).zipPar(ZIO.succeed(2))zipRight ve zipLeft
*> (zipRight) ikinci sonucu korur; <* (zipLeft) ilk sonucu korur. Her ikisi de etkileri sırayla çalıştırır.
import zio._
val r = Console.printLine("log") *> ZIO.succeed(99)foreach
ZIO.foreach, bir koleksiyonun her öğesi için bir etki çalıştırır ve sonuçları, traverse işlemine benzer şekilde toplar.
import zio._
val prog = ZIO.foreach(List(1, 2, 3))(n => Console.printLine(n.toString))foreachPar
ZIO.foreachPar, her öğenin etkisini eşzamanlı olarak çalıştırır; birden çok HTTP isteği gibi paralel G/Ç işlemleri için idealdir.
import zio._
val ids = List(1, 2, 3)
val prog = ZIO.foreachPar(ids)(id => ZIO.succeed(id * 10))Koşullu Etkiler
ZIO.when, yalnızca bir koşul doğruysa bir etki çalıştırır ve sonucun Option değerini döndürür. ZIO.unless bunun tersidir.
import zio._
def logIf(debug: Boolean) =
ZIO.when(debug)(Console.printLine("debugging"))Döngüler
ZIO.iterate ve ZIO.loop, etkili döngüler oluşturur. repeatN ise bir etkiyi sabit sayıda yeniden çalıştırır.
import zio._
val ticks = Console.printLine("tick").repeatN(2) // runs 3 times totalBirleştirilmiş İş Akışı
Burada bir iş akışı, bir toplam hesaplayıp yazdırır; tümü bir for ifadesindeki küçük ZIO adımlarından oluşturulmuştur.
import zio._
val workflow = for {
a <- ZIO.succeed(20)
b <- ZIO.succeed(22)
_ <- Console.printLine(s"Sum: ${a + b}")
} yield ()Basit Scala Karşılığı
Karşılaştırma amacıyla aynı mantığın hemen çalışan basit Scala'daki hâli. ZIO, çalıştırmayı erteler ve etkileri tür sisteminde izler; ancak aynı çıktıyı üretir.
object Main {
def main(args: Array[String]): Unit = {
val a = 20
val b = 22
println(s"Sum: ${a + b}")
}
}Hızlı Kontrol
Bir listenin her öğesi için bir etkiyi eşzamanlı olarak hangi birleştirici çalıştırır?
Özet
ZIO etkilerini şunlarla birleştirdiniz:
- Sıralı çalıştırma için
flatMap/for zip/zipPar,*>,<*foreach/foreachParwhen/unlessve döngüler
Sırada: hata ve bağımlılık kanalları.
Yapay zeka eğitmeniyle Scala öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 39
- Dersler
- 143
Sıkça Sorulan Sorular
“ZIO Birleştirme” dersi ücretsiz mi?
Evet — “ZIO Birleştirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Scala for Backend Engineering & Functional Programming kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Scala for Backend Engineering & Functional Programming kursu toplamda 4 dersten oluşur.
“ZIO Birleştirme” dersinde ne öğreneceğim?
flatMap ve for Scala for Backend Engineering & Functional Programming ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Scala for Backend Engineering & Functional Programming öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Scala for Backend Engineering & Functional Programming, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“ZIO Birleştirme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Scala for Backend Engineering & Functional Programming dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Scala for Backend Engineering & Functional Programming dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.