Zgodnie z dla iteratorów są tacy konsumenci jak find
i fold
.Dlaczego metoda fold podaje rzeczywisty element zamiast odniesienia?
Służą one jako:
let greater_than_forty_two = (0..100).find(|x| *x > 42);
i
let sum = (1..4).fold(0, |sum, x| sum + x);
W obu przypadkach x
jest aktualna wartość. Jednak w pierwszym przypadku x
jest odniesieniem, aw drugim przypadku jest to sam element.
O ile rozumiem z pętli for
, musi to być odniesienie, aby uniknąć problemów właściciela. Ale czy nie powinno być problemu z tym samym właścicielem w przypadku foldowania?
Ok, chodzi o to, że 'find' zwraca jedną z jego wartości, podczas gdy' fold' zawsze zwraca nową (złożoną) wartość. Dzięki. – michas