Wpis z mikrobloga

Na oficjalej stronie golanga w sekcji FAQ mamy coś takiego:

Why does Go not have exceptions?

We believe that coupling exceptions to a control structure, as in the try-catch-finally idiom, results in convoluted code. It also tends to encourage programmers to label too many ordinary errors, such as failing to open a file, as exceptional.


Dlaczego
if err != nil` w każdej funkcji w #golang jest lepsze od exceptionów i jednego catcha na cały projekt?

Zawsze jak widzę kod go to mnie mdli od tych ifów z sprawdzania errorów.

#programowanie #programista15k
  • 2
@PoteznyMagWody: Przymus zwracania błędów ma Cię zmusić do ich obsługi, co jest szczytnym celem, ale nie w obecnej formie. Go brakuje typu Either / Result z monadycznym interfejsem który by zapobiegł tym nieszczęsnym 'if err != nil'. Takie rzeczy mamy wbudowane w Scali, Haskellu czy nawet u konkurencji Go - w Rustcie. To się jednak szybko nie stanie bo Go nie ma nawet jeszcze parametrycznego polimorfizmu.