Alle Originalinhalte werden auf Ukrainisch erstellt. Noch nicht alle Inhalte wurden übersetzt. Einige Beiträge sind möglicherweise nur auf Ukrainisch verfügbar.Mehr erfahren

Was ist der Unterschied zwischen int und bigint in Ruby? Minimale und maximale Werte.

Beitrags-Cover: Was ist der Unterschied zwischen int und bigint in Ruby? Minimale und maximale Werte.
InhaltsverzeichnisKlicke auf den Link, um zur gewünschten Stelle zu navigieren
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
In Ruby gibt es nur einen Typ von Ganzzahlen – Integer. In früheren Versionen von Ruby gab es separate Klassen für Ganzzahlen unterschiedlicher Größen, wie Fixnum für kleine Ganzzahlen und Bignum für große Ganzzahlen. Seit Ruby 2.4 wurden diese Klassen in einer einzigen Klasse Integer zusammengeführt.
In Ruby gibt es keine Unterscheidung zwischen int und bigint, wie in Datenbanken. Die einzige Klasse Integer kann sowohl kleine als auch große Ganzzahlen darstellen. Dieses Merkmal ermöglicht es Ruby, problemlos mit beliebigen Ganzzahlen zu arbeiten, unabhängig von ihrer Größe.
13.class
=> Integer

9223372036854775808.class
=> Integer
Im Kontext von Datenbanken wie PostgreSQL begegnen wir häufig den Datentypen int und bigint, die 32-Bit- bzw. 64-Bit-Ganzzahlen darstellen. In Ruby können wir mit jedem dieser Datentypen arbeiten, aber es ist wichtig zu verstehen, wie sie sich in der Datenbank unterscheiden und wie Ruby mit großen Zahlen umgeht.

Unterschied zwischen int und bigint

Vereinfacht gesagt – bigint kann eine größere maximale Ganzzahl haben. Das heißt, wenn man eine zu große Zahl in int eingibt, erhalten wir einen Fehler. Dafür benötigen wir einen Datentyp, der größere Werte annehmen kann. Dies ist im Kontext großer Datenbanken nützlich. Wenn Sie wissen, dass die Datenbank groß sein wird – verwenden Sie bigint. Andernfalls müssen Sie irgendwann Migrationen von int zu bigint schreiben (technische Schulden werden sich anhäufen, dies kann vermieden werden, wenn man den ungefähren / potenziellen Umfang der Datenbank kennt).

Minimale und maximale Werte für int und bigint

Okay. Lassen Sie uns die maximalen Zahlen berechnen, die int und bigint haben können:
# Minimale und maximale Werte für int (32-Bit-Ganzzahl)
min_int = -2**31
max_int = 2**31 - 1
puts "Min int: #{min_int}, Max int: #{max_int}"
Min int: -2147483648, Max int: 2147483647
# Minimale und maximale Werte für bigint (64-Bit-Ganzzahl)
min_bigint = -2**63
max_bigint = 2**63 - 1
puts "Min bigint: #{min_bigint}, Max bigint: #{max_bigint}"
Min bigint: -9223372036854775808, Max bigint: 9223372036854775807
Wenn man Zahlen außerhalb dieser Bereiche hinzufügt oder subtrahiert, erhalten wir einen SQL-Fehler:
ERROR:  integer out of range # für int
ERROR:  bigint out of range  # für bigint
Wenn Sie versuchen, Werte über die Rails-App zu speichern, werden Sie ActiveRecord-Fehler sehen.

Dieser Beitrag hat noch keine Ergänzungen vom Autor.

Erstellt Ruby eine neue Kopie des Objekts, wenn eine Variable einer anderen Variable zugewiesen wird?
29. Mai, 09:30 Uhr

Erstellt Ruby eine neue Kopie des Objekts, wenn eine Variable einer anderen Variable zugewiesen wird?

meme code
meme code@memecode
Was ist der Unterschied zwischen immediate value und reference in Ruby?
29. Mai, 12:00 Uhr

Was ist der Unterschied zwischen immediate value und reference in Ruby?

meme code
meme code@memecode
Warum gibt der Ruby-Code nil zurück, nachdem puts ausgeführt wurde?
29. Mai, 20:30 Uhr

Warum gibt der Ruby-Code nil zurück, nachdem puts ausgeführt wurde?

meme code
meme code@memecode
Was ist der Unterschied zwischen nil und false in Ruby?
29. Mai, 20:59 Uhr

Was ist der Unterschied zwischen nil und false in Ruby?

meme code
meme code@memecode
Warum ist eine leere Zeichenkette (string) in Ruby nicht false?
31. Mai, 14:39 Uhr

Warum ist eine leere Zeichenkette (string) in Ruby nicht false?

meme code
meme code@memecode
Sichtbarkeit des lokalen Variablenbereichs in Ruby
03. Jun, 16:46 Uhr

Sichtbarkeit des lokalen Variablenbereichs in Ruby

meme code
meme code@memecode
Was bedeutet der Fehler 'is out of range' in Ruby on Rails? Bereichsfehler - Ganzzahl mit einer Begrenzung von 4 Bytes
13. Jun, 07:18 Uhr

Was bedeutet der Fehler 'is out of range' in Ruby on Rails? Bereichsfehler - Ganzzahl mit einer Begrenzung von 4 Bytes

meme code
meme code@memecode
Was sind Immutabilität und Mutabilität?
19. Jun, 07:48 Uhr

Was sind Immutabilität und Mutabilität?

meme code
meme code@memecode
[Ruby] Was ergibt die Addition von 10,5 und 10?
23. Jun, 13:23 Uhr

[Ruby] Was ergibt die Addition von 10,5 und 10?

meme code
meme code@memecode
[Ruby] Was unterscheidet Variablen, die mit @, @@ und $ beginnen?
23. Jun, 14:00 Uhr

[Ruby] Was unterscheidet Variablen, die mit @, @@ und $ beginnen?

meme code
meme code@memecode
Was ist eine Funktion in der Programmierung?
24. Jun, 18:15 Uhr

Was ist eine Funktion in der Programmierung?

meme code
meme code@memecode
[Fix] extconf.rb ist bei der Installation der Ruby-Bibliothek Gosu fehlgeschlagen
27. Jun, 16:38 Uhr

[Fix] extconf.rb ist bei der Installation der Ruby-Bibliothek Gosu fehlgeschlagen

meme code
meme code@memecode