Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Esceptoj / Molaj misfunkcioj / Exercises / Mola reciproko
Solvo: Mola reciproko
Jen ebla solvo de la tasko.
Kodo
sub reciprocal($n) {
fail 'no reciprocal of zero' if $n == 0;
return 1 / $n;
}
say reciprocal(4);
say reciprocal(0) // 'undefined';🦋 Vi povas trovi la fontkodon en la dosiero soft-divide.raku.
Eligo
0.25
undefinedKomentoj
reciprocal(4)redonas1 / 4, tio estas0.25, normale.reciprocal(0)vokasfail, do ĝi redonasFailure, kiu estas nedifinita. La operatoro//redonas sian dekstran flankon, kiam ajn la maldekstra flanko estas nedifinita, do ni ricevas la retiriĝonundefined.Uzi
//kalkuliĝas kiel trakti la misfunkcion: ĝi testas difinitecon sen uzi la valoron, do laFailurerestas mola kaj neniam estas ĵetata kiel vera escepto.