Ruby 'Großbuchstaben!' Paradox

7

In Ruby haben wir die 'bang'-Methode capitalize! , die das seltsame Verhalten hat, ein nil zurückzugeben, wenn keine Änderungen an der Zeichenkette vorgenommen wurden.

Das bedeutet, dass ich diese Befehle nicht mit anderen verketten kann, da es die Kette effektiv zerstört, wenn sie nil zurückgibt.

Was ich versuche zu tun, ist etwa so:

%Vor%

extrahiert den Vornamen aus einer Zeichenfolge und sollte diesen ebenfalls groß schreiben. Wenn sie jedoch bereits großgeschrieben ist, ist die in fname gespeicherte Zeichenfolge nil .

Natürlich kann ich eine weitere Aussage hinzufügen, aber ich frage mich, ob es einen Weg gibt, dies zu tun, "ohne die Kette zu durchbrechen".

    
Roman M 19.11.2008, 23:44
quelle

2 Antworten

17

Verwenden Sie .capitalize (ohne den Knall) - es sei denn, Sie müssen es wirklich ändern die Quelle.

    
HanClinto 19.11.2008, 23:51
quelle
7

Da Ihre Anweisung den Wert von fullname nicht ändert, tun Sie einfach:

%Vor%

Was nicht Null zurückgibt, wenn keine Änderung vorgenommen wird.

    
Robert Gamble 19.11.2008 23:54
quelle

Tags und Links