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.