← strona głównaProgramowanie (Програмування)

[Ruby] Co zwróci wynik dodawania 10.5 i 10?

Popularne pytanie z rozmowy kwalifikacyjnej na stanowisko juniora. Co zwróci wynik dodawania 10.5 i 10?

Ta treść została automatycznie przetłumaczona z ukraińskiego.
Dość proste na pierwszy rzut oka pytanie może pojawić się na rozmowie kwalifikacyjnej na stanowisko junior ruby dev. Co zwróci wynik dodawania 10.5 i 10? Gdzie tkwi haczyk?
10.5 + 10
Rozważmy przykład. Jaka jest różnica między 10.5 a 10? Zwróć uwagę na .5, czyli na przecinek dziesiętny. Sprawdźmy klasy tych dwóch obiektów.
10.5.class
=> Float
10.class
=> Integer
Oto haczyk. Dodajemy obiekty dwóch klas. Jaki będzie wynik, jeśli dodamy Float i Integer?
(10.5 + 10).class
=> Float
To znaczy, że po dodaniu Float i Integer otrzymamy Float. Co to oznacza? Oznacza to, że w obecności przecinka - wynik będzie z przecinkiem.
10.5 + 10
=> 20.5
Aby to udowodnić - możemy napisać testy. Sprawdzimy również, czy otrzymamy obiekt klasy Integer, jeśli dodamy 10 + 10.
Stwórzmy plik operations_spec.rb:
require 'rspec'

RSpec.describe 'Operacje dodawania' do
  context 'gdy dodajemy Float i Integer' do
    it 'zwraca Float' do
      result = 10.5 + 10
      expect(result).to be_a(Float)
      expect(result).to eq(20.5)
    end
  end

  context 'gdy dodajemy Integer i Integer' do
    it 'zwraca Integer' do
      result = 10 + 10
      expect(result).to be_a(Integer)
      expect(result).to eq(20)
    end
  end
end
Uruchamiamy i otrzymujemy wynik, który potwierdza wszystko, o czym pisaliśmy powyżej.
rspec operations_spec.rb
..

Finished in 0.01617 seconds (files took 0.31407 seconds to load)
2 examples, 0 failures
Wszystko jest dość proste. Ale musisz znać te niuanse.

🔥 Więcej postów

Wszystkie wpisy
Jak zrobić pusty commit w gicie?
Programowanie (Програмування)28 cze '24 08:33

Jak zrobić pusty commit w gicie?

Jak zrobić pusty git commit? Robimy pusty git commit. Po co? Kto wie, każdy ma swoje cele. W moim...