Fold

Cria um novo valor do tipo TState aplicando a função folder ao valor opcional e à um valor state informado por parâmetro. Caso o valor opcional esteja no estado IsNone, o valor state é retornado.

Como usar

Esta função realiza uma transformação de um Option<T> para um TState ao aplicar a função folder. Caso o valor opcional esteja no estado IsNone a função folder não é executada e o parâmetro state é retornado.

Quando o valor opcional está no estado IsSome

string state = "The number is: "
Option<int> optionValue = 10;
string result = optionValue.Fold(
                    state,
                    (_state, value) => string.Concat(_state, value) );

//result = "The number is: 10"

Quando o valor opcional está no estado IsNone

string state = "The number is: "
Option<int> optionValue = Option<int>.None();
string result = optionValue.Fold(
                    state,
                    (_state, value) => string.Concat(_state, value) );

//result = "The number is: "

Quando o valor opcional está no estado IsSome e o state também é um valor inteiro

int state = 30
Option<int> optionValue = 10;
int result = optionValue.Fold(
                 state,
                 (_state, value) => _state + value );

//result = 40

Quando o valor opcional está no estado IsNone e o state também é um valor inteiro

int state = 30
Option<int> optionValue = Option<int>.None();
int result = optionValue.Fold(
                 state,
                 (_state, value) => _state + value );

//result = 30

Last updated