Cursus Raku / Objecten, in- en uitvoer en excepties / Excepties / Zachte fouten / Exercises / Zachte omgekeerde
Oplossing: Zachte omgekeerde
Hier is een mogelijke oplossing voor de taak.
Code
sub reciprocal($n) {
fail 'no reciprocal of zero' if $n == 0;
return 1 / $n;
}
say reciprocal(4);
say reciprocal(0) // 'undefined';🦋 Je kunt de broncode vinden in het bestand soft-divide.raku.
Uitvoer
0.25
undefinedOpmerkingen
reciprocal(4)geeft gewoon1 / 4terug, dat wil zeggen0.25.reciprocal(0)roeptfailaan en geeft dus eenFailureterug, die ongedefinieerd is. De operator//geeft zijn rechterkant terug zodra de linkerkant ongedefinieerd is, dus krijgen we de terugvalundefined.//gebruiken telt als de mislukking afhandelen: het test op gedefinieerdheid zonder de waarde te gebruiken, dus blijft deFailurezacht en wordt hij nooit als echte exceptie geworpen.