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

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

Beitrags-Cover: [Ruby] Was ergibt die Addition von 10,5 und 10?
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
Eine auf den ersten Blick recht einfache Frage kann in einem Vorstellungsgespräch für eine Junior Ruby-Entwicklerposition gestellt werden. Was wird als Ergebnis der Addition von 10.5 und 10 zurückgegeben? Wo liegt der Haken?
10.5 + 10
Schauen wir uns ein Beispiel an. Was ist der Unterschied zwischen 10.5 und 10? Achten Sie auf .5, also auf den Dezimalpunkt. Lassen Sie uns die Klassen dieser beiden Objekte überprüfen.
10.5.class
=> Float
10.class
=> Integer
Da liegt der Haken. Wir addieren Objekte zweier Klassen. Was wird das Ergebnis sein, wenn wir Float und Integer addieren?
(10.5 + 10).class
=> Float
Das bedeutet, dass wir nach der Addition von Float und Integer Float erhalten. Was bedeutet das? Das bedeutet, dass bei Vorhandensein eines Dezimalpunkts das Ergebnis einen Dezimalpunkt haben wird.
10.5 + 10
=> 20.5
Um dies zu beweisen, können wir Tests schreiben. Lassen Sie uns auch überprüfen, ob wir ein Objekt der Klasse Integer erhalten, wenn wir 10 + 10 addieren.
Erstellen wir die Datei operations_spec.rb:
require 'rspec'

RSpec.describe 'Additionsoperationen' do
  context 'wenn wir Float und Integer addieren' do
    it 'gibt Float zurück' do
      result = 10.5 + 10
      expect(result).to be_a(Float)
      expect(result).to eq(20.5)
    end
  end

  context 'wenn wir Integer und Integer addieren' do
    it 'gibt Integer zurück' do
      result = 10 + 10
      expect(result).to be_a(Integer)
      expect(result).to eq(20)
    end
  end
end
Wir führen es aus und erhalten ein Ergebnis, das alles bestätigt, was wir oben geschrieben haben.
rspec operations_spec.rb
..

Fertig in 0.01617 Sekunden (Dateien benötigten 0.31407 Sekunden zum Laden)
2 Beispiele, 0 Fehler
Alles ist ziemlich einfach. Aber Sie sollten diese Nuancen kennen.

Dieser Beitrag hat noch keine Ergänzungen vom Autor.

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 ist der Unterschied zwischen int und bigint in Ruby? Minimale und maximale Werte.
13. Jun, 06:37 Uhr

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

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 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
Wie macht man einen leeren Git-Commit?
28. Jun, 08:33 Uhr

Wie macht man einen leeren Git-Commit?

meme code
meme code@memecode
Ruby-Bibliothek Gosu zur Erstellung von 2D-Spielen
29. Jun, 08:48 Uhr

Ruby-Bibliothek Gosu zur Erstellung von 2D-Spielen

meme code
meme code@memecode
Gosu Ruby Tutorial - пройдемось по офіційній документації
03. Jul, 11:50 Uhr

Gosu Ruby Tutorial - пройдемось по офіційній документації

meme code
meme code@memecode