Uciekaj szybko z metody i usuwaj „else”

Chciałem w sumie tylko podlinkować:

What really grind my gears #1 – IIIIIIIIIIIIIIIIF! by Oskar Dudycz.

TL;DR, taki kod:

public TwojTyp IIIIIIIIIIIIIIIIIFunkcja(JeszczeInnyTyp obj)
{
TwojTyp wynik;
if (obj != null)
{
if (obj.Nazwa == "Jakastam")
{
wynik = new TwojTyp(3);
}
else
{
int ilestam = wyliczIlestam(obj);
wynik = new TwojTyp(ilestam);
}
}
else
{
wynik = null;
}
return wynik;
}

zamieniamy na:

public TwojTyp IIIIIIIIIIIIIIIIIFunkcja(JeszczeInnyTyp obj)
{
if (obj == null)
{
return null;
}
if (obj.Nazwa == "Jakastam")
{
return new TwojTyp(3);
}
int ilestam = wyliczIlestam(obj);
return new TwojTyp(ilestam);
}

2 Comments on “Uciekaj szybko z metody i usuwaj „else”

  1. W F# mozna zalozyc ze null nie ma racji bytu i nie potrzeba sprawdzac czy cos jest nullem a caly kod napisac w stylu:

    let twojTyp obj =
    match obj.Nazwa with
    | „Jakastam” -> twojtyp 3
    | _ -> ilestam obj |> twojtyp

    To jest dopiero czytelne ^^

    • @Michal Franc

      Też tak lubię, teraz w teamie pokazuję jak w C# pisać funkcyjnie. Jest dobry case żeby pisać w F#, ale to jest process… Niewiadomo czy się uda 😉