7 Stimmen

Rubin-Paradoxon "Kapitalisieren!

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

Das bedeutet, dass ich diesen Befehl nicht mit anderen Befehlen verketten kann, da er die Kette effektiv zerstört, wenn er zurückkehrt nil .

Was ich zu tun versuche, ist etwas wie dieses:

fname =  fullname[0...fullname.index(' ')].capitalize!

das den Vornamen aus einer Zeichenkette extrahiert und ihn ebenfalls großschreiben sollte. Wenn er jedoch bereits großgeschrieben ist, wird die Zeichenkette, die in fname est nil .

Natürlich kann ich eine weitere Anweisung hinzufügen, aber ich frage mich, ob es eine Möglichkeit gibt, dies zu tun, "ohne die Kette zu unterbrechen".

17voto

HanClinto Punkte 9253

Utilice .kapitalisieren (ohne den Knall) - es sei denn, Sie brauchen es tatsächlich, um die Quelle zu ändern.

0 Stimmen

Omg... ich kann nicht glauben, dass ich das nicht selbst bemerkt habe :( tnx dude

0 Stimmen

Freut mich sehr zu hören, dass es geholfen hat :)

0 Stimmen

@HanClinto Was ist, wenn Sie die Variable in Großbuchstaben schreiben und speichern müssen (über !), aber nicht garantieren können, dass der Benutzer sie in Kleinbuchstaben eingibt? Gibt es eine Möglichkeit, dies zu tun, ohne eine andere Methode zu verketten?

7voto

Robert Gamble Punkte 101657

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

fname =  fullname[0...fullname.index(' ')].capitalize

die nicht null zurückgibt, wenn keine Änderung vorgenommen wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X