Ruby-Datentypen
In diesem Kapitel stellen wir die grundlegenden Datentypen von Ruby vor.
Die von Ruby unterstützten Datentypen umfassen die grundlegenden Number, String, Ranges, Symbols sowie die speziellen Werte true, false und nil und zwei wichtige Datenstrukturen - Array und Hash.
Numerische Typen (Number)
1. Ganzzahlen
Es gibt zwei Arten von Ganzzahlen. Wenn sie innerhalb von 31 Bits (vier Bytes) liegen, handelt es sich um eine Fixnum-Instanz. Wenn sie darüber hinausgehen, handelt es sich um eine Bignum-Instanz.
Der Ganzzahlbereich reicht von -230bis 230-1, und Ganzzahlen in diesem Bereich sind Objekte der KlasseFixnum. Wenn der Ganzzahlwert größer oder gleich 2 hoch 30 ist ( -262bis 262-1), wird er automatisch in den Typ Bignum konvertiert.
Sie können ein optionales führendes Vorzeichen vor der Ganzzahl verwenden, eine optionale Basisangabe (0 für Oktal, 0x für Hex, 0b für Binär), gefolgt von einer Reihe von Ziffern. Unterstriche werden in der numerischen Zeichenkette ignoriert.
Sie können den Ganzzahlwert eines ASCII-Zeichens oder einer mit einem Fragezeichen markierten Escape-Sequenz abrufen.
Beispiel
Gleitkommatyp
Ruby unterstützt Gleitkommazahlen. Sie sind Zahlen mit Dezimalbrüchen. Gleitkommazahlen sind Objekte der KlasseFloatund können eine der folgenden sein.
Beispiel
Beispiel
Arithmetische Operationen
Additions-, Subtraktions-, Multiplikations- und Divisionsoperatoren: + - * /; Exponentenoperator ist **
Der Exponent muss keine ganze Zahl sein, zum Beispiel
Beispiel
String-Typ
Ein Ruby-String ist einfach eine Folge von 8-Bit-Bytes, und sie sind Objekte der Klasse String.
Durch doppelte Anführungszeichen begrenzte Strings erlauben Substitution und die Verwendung von Backslash-Notationen; durch einfache Anführungszeichen begrenzte Strings erlauben keine Substitution und nur zwei Backslash-Notationen: \\ und \'.
Dies erzeugt das folgende Ergebnis:
escape using "\" That's right
Sie können die Sequenz#{ expr }verwenden, um den Wert eines beliebigen Ruby-Ausdrucks in einen String einzusetzen. Hier kann expr ein beliebiger Ruby-Ausdruck sein.
Beispiel
Dies erzeugt das folgende Ergebnis:
相乘 : 86400
Beispiel
Das Ausgabeergebnis ist:
Ruby Ruby,ok
Backslash-Notationen
Die folgende Tabelle listet die von Ruby unterstützten Backslash-Notationen auf:
| Notationen | Dargestelltes Zeichen |
|---|---|
| \n | Zeilenumbruch (0x0a) |
| \r | Wagenrücklauf (0x0d) |
| \f | Seitenvorschub (0x0c) |
| \b | Rücktaste (0x08) |
| \a | Glocke (0x07) |
| \e | Escape (0x1b) |
| \s | Leerzeichen (0x20) |
| \nnn | Oktalschreibweise (n ist 0-7) |
| \xnn | Hexadezimalschreibweise (n ist 0-9, a-f oder A-F) |
| \cx, \C-x | Strg-x |
| \M-x | Meta-x (c | 0x80) |
| \M-\C-x | Meta-Strg-x |
| \x | Zeichen x |
Für weitere Details zu Ruby-Strings sieheRuby String。
Arrays
Array-Literale werden durch kommagetrennte Werte innerhalb von [] definiert und unterstützen auch Bereichsdefinitionen.
- (1) Auf Arrays wird über den Index mit [] zugegriffen
- (2) Einfügen, Löschen und Ersetzen von Elementen durch Zuweisungsoperationen
- (3) Verwenden Sie + und -, um Elemente zusammenzuführen und zu entfernen, und die Sammlung wird als neue Sammlung zurückgegeben.
- (4) Das <<-Zeichen hängt Elemente an die Originaldaten an.
- (5) Das *-Zeichen wiederholt Array-Elemente.
- (6) Die Symbole | und & werden für Vereinigungs- und Schnittmengenoperationen verwendet (achten Sie auf die Reihenfolge).
Beispiel
Ausprobieren »
Dies erzeugt das folgende Ergebnis:
fred 10 3.14 This is a string last element
Weitere Details zu Ruby-Arrays finden Sie unterRuby-Array。
Hash-Typ
Ein Ruby-Hash ist eine Reihe von Schlüssel-Wert-Paaren in geschweiften Klammern, wobei Schlüssel und Werte durch Kommas und die Sequenz => getrennt werden. Nachgestellte Kommas werden ignoriert.
Beispiel
Beispiel
Ausprobieren »
Dies erzeugt das folgende Ergebnis:
red is 3840 green is 240 blue is 15
Weitere Details zu Ruby-Hashes findest du unterRuby Hash。
Range-Typ
Ein Range repräsentiert ein Intervall.
Ein Range wird durch Festlegen eines Startwerts und eines Endwerts dargestellt. Ranges können mit s..e und s...e oder über Range.new konstruiert werden.Ein mit .. konstruierter Range läuft vom Startwert bis zum Endwert (inklusive). Ein mit ... konstruierter Range läuft vom Startwert bis zum Endwert (exklusiv). Wenn er als Iterator verwendet wird, gibt der Range jeden Wert in der Sequenz zurück.
Der Range (1..5) bedeutet, dass er die Werte 1, 2, 3, 4, 5 enthält, und der Range (1...5) bedeutet, dass er die Werte 1, 2, 3, 4 enthält.
Dies erzeugt das folgende Ergebnis:
10 11 12 13 14 15
Weitere Details zu Ruby-Ranges findest du unterRuby Range。
Andere Erweiterungen