Ruby eine Zeile, wenn return-Anweisung

8

Gibt es eine Möglichkeit, diese Linie auf Ruby zu kürzen?

%Vor%

auf

%Vor%

wenn der Inhalt von bla_permission_invalid etwas wie

ist %Vor%

invalid_adress_report_func und permission_error_report_func gibt String

zurück     
Kokizzu 25.10.2013, 10:03
quelle

4 Antworten

4

Wenn die möglichen Werte String und NilClass sind, kann der Code folgendermaßen vereinfacht werden:

%Vor%     
Sergio Tulentsev 25.10.2013, 11:25
quelle
5
%Vor%     
tihom 25.10.2013 11:19
quelle
2

Zum Spaß könnte man die Methode something folgendermaßen umschreiben:

%Vor%

Aber was noch wichtiger ist, Mark Thomas verdient Anerkennung für seine Beobachtung, dass das vorliegende Problem durch benutzerdefinierte Ausnahmen gelöst werden sollte.

Fehlercode-Ansatz ist gut in Sprachen, die keine Ausnahmen haben. Ruby hat sie.

    
Boris Stitnicky 25.10.2013 11:31
quelle
1

Mark Thomas hat bereits in seinen Kommentar notiert, dass es so aussieht Sie versuchen, Fehler mit einer Art von Zeichenfolge-Kennung zu behandeln. Sie könnten stattdessen Ausnahmen verwenden:

%Vor%

Im obigen Code something ruft bla_permission_invalid auf, führt seine Arbeit aus und gibt true zurück. Wenn eine Ausnahme in bla_permission_invalid ausgelöst wird, wird der Aufrufstapel automatisch weitergeleitet. Sie müssen ihn nicht explizit aus something zurückgeben.

Um die Ausnahme zu behandeln:

%Vor%     
Stefan 25.10.2013 12:12
quelle

Tags und Links