Wie Sie den Antworten entnehmen können, ist es möglich, eine Methode auf unterschiedliche Weise in einer einzelnen Zeile zu definieren. Die Frage ist jedoch, sollten Sie? Jede Definition sollte aus Wartungs- und Lesbarkeitsgründen klar und sauber geschrieben werden. Wenn die einzelne Zeile also unhandlich oder verwirrend wird, verteilen Sie sie. Einige Sprachen scheinen eine knappe Codierung zu fördern, um Code zu lernen, aber der Ruby-Codierungsstil fördert Eleganz, Lesbarkeit und Wartbarkeit über die Studierbarkeit hinaus. Erfülle die ersten drei und wir werden uns vor dir verneigen.
der Blechmann
Antworten:
100
Sie können die Verwendung von Semikolons vermeiden, wenn Sie Klammern verwenden:
Dies ist länger als die Verwendung von Semikolons ...?
Apollys unterstützt Monica
72
Geben Sie einfach die vollständige neue Antwort:
Vermeiden Sie im Allgemeinen einzeilige Methoden. Obwohl sie in freier Wildbahn etwas beliebt sind, gibt es einige Besonderheiten in ihrer Definitionssyntax, die ihre Verwendung unerwünscht machen. Auf jeden Fall sollte
eine einzeilige Methode nicht mehr als einen Ausdruck enthalten .
# baddef too_much; something; something_else;end# okish - notice that the first ; is requireddef no_braces_method; body end# okish - notice that the second ; is optionaldef no_braces_method; body;end# okish - valid syntax, but no ; make it kind of hard to readdef some_method() body end# gooddef some_method
body
end
Eine Ausnahme von der Regel sind Leerstellenmethoden.
In Ruby ist der Rückgabewert einer Methode der Wert, der von der letzten Anweisung zurückgegeben wurde. Sie brauchen das returnhier nicht, da es keine Schutzklausel ist.
Damien
1
Upvoted, da dies, obwohl es nicht benötigt wird , die returnLesbarkeit für diejenigen verbessern kann, die weniger mit Ruby vertraut sind (oder mit Ruby vertraut sind). Es ist eines dieser YMMV- Dinge ...
Antworten:
Sie können die Verwendung von Semikolons vermeiden, wenn Sie Klammern verwenden:
quelle
Geben Sie einfach die vollständige neue Antwort:
Vermeiden Sie im Allgemeinen einzeilige Methoden. Obwohl sie in freier Wildbahn etwas beliebt sind, gibt es einige Besonderheiten in ihrer Definitionssyntax, die ihre Verwendung unerwünscht machen. Auf jeden Fall sollte eine einzeilige Methode nicht mehr als einen Ausdruck enthalten .
Eine Ausnahme von der Regel sind Leerstellenmethoden.
Von bbatsov / ruby-style-guide .
quelle
Das Semikolon ist der Terminator für Inline-Anweisungen für Ruby
Oder Sie können die
define_method
Methode verwenden. (Bearbeiten: Dieser ist in Ruby 1.9 veraltet)quelle
Ein anderer Weg:
Kann verwendet werden, wenn Sie beim Definieren keinen neuen Bereich für die Methode eingeben möchten.
quelle
define_method
wurde in Ruby 1.9 "privatisiert"Noch ein anderer Weg:
quelle
return
hier nicht, da es keine Schutzklausel ist.return
Lesbarkeit für diejenigen verbessern kann, die weniger mit Ruby vertraut sind (oder mit Ruby vertraut sind). Es ist eines dieser YMMV- Dinge ...