ГоловнаВсі публікаціїКатегоріїПро проєкт

[Ruby] Що повернеться в результаті складання 10.5 та 10?

Обкладинка нотатки: [Ruby] Що повернеться в результаті складання 10.5 та 10?
Доволі просте на перший погляд питання може бути на співбесіді на junior ruby dev позицію. Що повернеться в результаті складання 10.5 та 10? В чому підступ?
10.5 + 10
Розберемо приклад. В чому різниця між 10.5 та 10? Зверніть увагу на .5, тобто на плаваючу крапку. Давайте перевіримо класи цих двох об'єктів.
10.5.class
=> Float
10.class
=> Integer
Ось і підступ. Ми складаємо об'єкти двох класів. Який буде результат якщо скласти Float та Integer?
(10.5 + 10).class
=> Float
Тобто після складання Float та Integer ми отримаємо Float. Що це означає? Це означає що при наявності крапки - результат буде с крапкою.
10.5 + 10
=> 20.5
Щоб довести це - можемо написати тести. Також перевіримо, чи ми отримаємо об'єкт класу Integer якщо скласти 10 + 10.
Створимо файл operations_spec.rb:
require 'rspec'

RSpec.describe 'Операції додавання' do
  context 'коли додаємо Float і Integer' do
    it 'повертає Float' do
      result = 10.5 + 10
      expect(result).to be_a(Float)
      expect(result).to eq(20.5)
    end
  end

  context 'коли додаємо Integer і Integer' do
    it 'повертає Integer' do
      result = 10 + 10
      expect(result).to be_a(Integer)
      expect(result).to eq(20)
    end
  end
end
Запускаємо й отримуємо результат, який підтверджує все те, про що ми писали вище.
rspec operations_spec.rb
..

Finished in 0.01617 seconds (files took 0.31407 seconds to load)
2 examples, 0 failures
Все доволі просто. Але ви маєте знати ці нюанси.
Яка різниця між nil і false в Ruby?
29.05.2024 20:59

Яка різниця між nil і false в Ruby?

meme code
meme code@memecode
Чому порожній рядок (string) у Ruby не є false?
31.05.2024 14:39

Чому порожній рядок (string) у Ruby не є false?

meme code
meme code@memecode
Область видимості локальної змінної в Ruby
03.06.2024 16:46

Область видимості локальної змінної в Ruby

meme code
meme code@memecode
Чим відрізняється int та bigint в Ruby? Мінімальні та максимальні значення.
13.06.2024 06:37

Чим відрізняється int та bigint в Ruby? Мінімальні та максимальні значення.

meme code
meme code@memecode
Що означає помилка 'is out of range' в Ruby on Rails? Range Error - Integer with limit 4 bytes
13.06.2024 07:18

Що означає помилка 'is out of range' в Ruby on Rails? Range Error - Integer with limit 4 bytes

meme code
meme code@memecode
Що таке імутабільність та мутабільність?
19.06.2024 07:48

Що таке імутабільність та мутабільність?

meme code
meme code@memecode
[Ruby] Чим відрізняються змінні, що починаються з @, @@ та $?
23.06.2024 14:00

[Ruby] Чим відрізняються змінні, що починаються з @, @@ та $?

meme code
meme code@memecode
Що таке функція в програмуванні?
24.06.2024 18:15

Що таке функція в програмуванні?

meme code
meme code@memecode
[Фікс] extconf.rb failed під час встановлення Ruby-бібліотеки Gosu
27.06.2024 16:38

[Фікс] extconf.rb failed під час встановлення Ruby-бібліотеки Gosu

meme code
meme code@memecode
Як зробити пустий git commit?
28.06.2024 08:33

Як зробити пустий git commit?

meme code
meme code@memecode
Ruby-бібліотека Gosu для створення 2D-ігор
29.06.2024 08:48

Ruby-бібліотека Gosu для створення 2D-ігор

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

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

meme code
meme code@memecode