Combinators (Birleştiriciler): and_then
map()
, match
ifadelerini basitleştirmenin zincirlenebilir bir yolu olarak tanımlanır.
Ancak, Option<T>
döndüren bir fonksiyonda map()
kullanımı
iç içe geçmiş Option<Option<T>>
ile sonlanır. Birden çok çağrıyı birlikte zincirlemek kafa karıştırıcı olabilir. Tam burada, bazı dillerde "flatmap" olarak bilinen and_then()
adlı başka bir birleştirici devreye girer.
and_then()
paketlenmiş değer ile fonksiyon girdisini çağırır ve sonucu döndürür. Eğer Option
değeri None
ise, onun yerine None
değerini döndürür.
Takip eden örnekte, cookable_v2()
, Option<Food>
ile sonuçlanır.
and_then()
yerine map()
kullanımı eat()
için geçersiz bir tip olan Option<Option<Food>>
sonucunu verecektir.
Ayrıca bakınız:
closures, Option
, and Option::and_then()