Codecademy "die Konvertierung zwischen den Symbolen und Zeichenfolgen" ruby Lektion
Diese sind Codecademy instructions:
Haben wir ein array von strings, die wir gerne zur späteren Verwendung als hash-Schlüssel, aber wir würden eher Sie werden Symbole. Erstellen Sie ein neues array, Symbole. Verwenden
.each
Durchlaufen Sie die Zeichenfolgen-array und konvertieren Sie jede Zeichenfolge in eine symbol, das hinzufügen dieser Symbole, um Symbole.
Dies ist der code, den ich schrieb (die strings
array wurde zur Verfügung gestellt):
strings = ["HTML", "CSS", "JavaScript", "Python", "Ruby"]
symbols = []
strings.each { |x| x.to_sym }
symbols.push(strings)
Ich weiß, ich bin wahrscheinlich tun mehrere Dinge falsch, aber ich habe durch die ruby-track so weit mit sehr wenig Mühe, und so bin ich nicht sicher, warum dies eine guckten mich. Erstens, es ist nicht die Umwandlung der Zeichenketten Symbole, und zweitens, es ist nicht drücken Sie, um die Symbole Arrays.
- Die Methode, die Sie suchen, ist
map
.symbols = strings.map { |str| str.to_sym }
- Verwenden Sie keine code-Formatierung (backticks) für das, was nicht code. Code-Formatierung ist nicht besonders betonen oder hervorheben Fachbegriffe.
- Codeacademy ist nicht richtig: Sie können nicht konvertieren eine Zeichenfolge in ein symbol mit
to_sym
. Was Sie tun können, ist ( Zitat aus der doc) return das Symbol entsprechend str, erstellen Sie das symbol, wenn es zuvor nicht vorhanden war. Der string bleibt unverändert. - Was ist Ihre Frage?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
to_sym
allein nicht tun, etwas sinnvolles; Sie wurde konvertieren der Zeichenfolge, aber nicht speichern Sie es irgendwo, oder verwenden Sie es später. Sie wollen, um das hinzufügen der Symbole Arrays.Oder mehr aus, können Sie überspringen Einstellung
symbols = []
und verwenden nurmap
zu erstellen, die es in einer Zeile:map
gehen durch jedes Element in dem array und verwandeln es in etwas anderes nach der map-Funktion. Und für einfache maps, wo man einfach nur die Anwendung einer Funktion können Sie einen Schritt weiter:(Das ist das gleiche wie
symbols = strings.map(&:to_sym)
, je nachdem, was Sie finden, mehr tasteful.)map
im Unterricht.irb
aber CA nicht. CA nur zulässig, 1. Beispiel. ein weiteres Beispiel wärestrings.each { |s| symbols.push s.intern }
each
durchläuftstrings
wenden Sie den block auf jedes element. Allerdings ist es nicht etwas zurückzugeben. Sie wollen hinzufügen, um diesymbols
array im block selbst:Jedoch generieren Sie Symbole Arrays in einer Zeile als auch:
Können Sie den code ändern, um die folgenden:
Dieser sollte eine genaue Antwort..
Speichert man den neuen Wert, wie Sie iterativ jeden Wert der Zeichenfolge konvertieren es in ein symbol und dann Rückfahrt der Wert