Die Geschichte eines Arrays, aus dem ich persönlich "Python, oder?" Wurde, als ich kürzlich Python berührte. (Übrigens habe ich eine Vergangenheit, über die ich gestolpert bin und die ein oder zwei Stunden geschmolzen ist)
Im Folgenden finden Sie verschiedene Schreibweisen, wenn Sie versuchen, einem Array eine Zeichenfolge hinzuzufügen.
arr = []
arr += "hello" # => ['h', 'e', 'l', 'l', 'o']
arr.append("hello") # => ['hello']
Da "+ =" eine Verkettung von Arrays ist und ein iterierbares Objekt als Operanden empfängt, wird die Zeichenfolge als Array von Zeichen behandelt und zeichenweise im Array gespeichert. Wenn Sie beispielsweise einen int-Typ übergeben, ist dies natürlich nicht iterierbar und Sie erhalten eine Fehlermeldung.
Ich habe es nicht im Detail untersucht, aber wenn ich es mit irb überprüfe, scheint Ruby ähnlich zu sein.
arr = []
arr += 'hello' # => TypeError: no implicit conversion of String into Array
arr.append("hello") # => ['hello']
Wenn es sich bei Ruby jedoch um "+ =" handelt, handelt es sich um "Typfehler: Keine implizite Konvertierung von String in Array", und Sie werden mit einem Fehler feststellen, dass das Verhalten nicht wie beabsichtigt ist.
Das ist richtig, wenn Sie mich fragen, aber ich habe es als Gebot geschrieben, denn wenn ich versehentlich ein Array-Element in Python-Code mit einer ziemlich komplizierten Implementierung hinzugefügt habe, kann die Untersuchung einige Zeit dauern.
Recommended Posts