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.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ayrıca bakınız:

closures, Option, and Option::and_then()