Wenn ich die Klasse von Hallo [0] in Ruby ausgeben, heißt es "String". Dies liegt daran, dass einzelne in Anführungszeichen gesetzte Zeichenfolgen in Ruby existieren und es scheint nicht die Idee eines Zeichenarttyps zu sein. Neulich sagte ich zu meinem Kollegen, dass er eine Reihe von Charakteren habe und er sagte: "Nein, ich habe nicht, ich habe eine Reihe von Strings". Nickerchen, ja, aber technisch ist er vielleicht richtig. Aus der Welt von C kommend, denke ich nicht an einen einzelnen Charakter als String. Ist es vereinbart, dass das oben genannte Hello-Array ein Array von Strings und nicht ein Array von Zeichen ist?Ist 'c' in Ruby ein Zeichen oder eine Zeichenkette - oder beides?
Antwort
In C unterscheidet sich ein Zeichen von einem String (einem Array von Zeichen). Ruby hat keinen individuellen Zeichentyp. Zeichenfolgen können eine beliebige Anzahl von Zeichen enthalten, und Fixnummern können den ASCII-Wert für ein Zeichen enthalten und mit der Methode #chr in eine druckbare Zeichenfolge umgewandelt werden, die dieses Zeichen enthält.
Der Unterschied zwischen der einfachen und doppelten Anführungszeichenfolge in Ruby hängt davon ab, wie viel Vorverarbeitung (zB Interpolation) für die Zeichenfolge ausgeführt wird.
Ihr Kollege hätte Recht, Ruby scheint keine Klasse von Charakter zu haben.
Ja, es gibt keine Char-Klasse in Ruby, es gibt nur String. (Beachten Sie, dass char im C-Standard als 1 Byte definiert ist, was für Unicode-Zeichen nicht der Fall ist).
Ja. Während in C eine Zeichenfolge als C-String dargestellt wird, was im Grunde ein nullterminiertes Array von Zeichen ist, ist eine Zeichenfolge in Ruby eine Klasse, die ihren Inhalt auf eine komplexere Weise speichert. Sie können jeden Teil davon in einen neuen String extrahieren, und Ruby wird Ihnen wahrscheinlich keinen geringeren Zugriff darauf geben. In C bekommt man direkten Zugriff auf die Erinnerung, Ruby ist viel abstrakter als das.
- 1. Ist FLAG_ONLY_ALERT_ONCE defekt oder falsch oder beides?
- 2. Sellerie oder Bohnenstange oder beides?
- 3. Kategorien, Tags oder beides?
- 4. Ist Cassandra für OLAP oder OLTP oder beides?
- 5. Was ist besser, Whitelist oder Blacklist-Sicherheit oder beides?
- 6. Wie kann ich ein Zeichen oder eine Zeichenkette in C# für ASCII 127 definieren?
- 7. Rails: format.js oder format.json oder beides?
- 8. Prolog: eine kompilierte oder interpretierte Sprache oder beides?
- 9. Webflow vs. Angular oder beides?
- 10. Wie konvertiert man eine Zeichenkette in Zeichen-Array in c (oder) wie man eine einzelne Zeichenkette extrahiert?
- 11. Ist dieses GIF ein Standbild oder eine Animation? (in Ruby)
- 12. MySQL eins zu viele Beziehung: GROUP_CONCAT oder JOIN oder beides?
- 13. Sollte ich Elixir oder Erlang lernen (oder beides)?
- 14. Studienziel-C, Ruby oder Python?
- 15. Design Dokumente vs UML oder beides?
- 16. Serilog, Elmah oder beides für ein ASP.NET MVC-Projekt?
- 17. Wie bekomme ich ein Element aus der Sammlung in Meteor, wenn es ein mehrdimensionales Array oder Objekt oder beides ist?
- 18. InnoDB oder MyISAM - Warum nicht beides?
- 19. Wie fügt man Zeichen in eine Zeichenkette ein (mit vC++)?
- 20. Prüfen, ob ein Zeichen ein Vokal oder Konsonant ist?
- 21. Binär oder "|" in Ruby
- 22. Wie überprüft man, ob eine Variable eine Ganzzahl oder eine Zeichenkette ist?
- 23. Zeichenkette nach einem oder mehreren Leerzeichen oder Tabulatoren zerlegen
- 24. Python: Ist PyCharm kaputt? Oder bin ich vielleicht gebrochen? Oder beides?
- 25. Eine Zeichenkette durch zwei Zeichen teilen
- 26. Finden Sie, ob eine Zeichenkette ein Zeichen in C++ enthält (Boost erlaubt)
- 27. Ist IIS ein Webserver oder ein Anwendungsserver?
- 28. Überprüfen Sie, ob ein Zeichen ein Alphabet oder eine Zahl ist?
- 29. Was ist ein statischer Block in c oder C++?
- 30. Überprüfen Sie, ob ein Zeichen lowCase oder obererCase ist