Типы данных, переменные и операции

Любая наша программа состоит из каких-то данных и каких-то операций над ними. Это могут быть простые данные (примитивные) такие как строки, числа и тд, так и сложные, такие как дата, время и тд. В сегодняшнем уроке мы подробно поговорим о том как выглядят эти самые базовые типы данных и что мы можем делать с ними.

Базовые типы данных

В Ruby у нас есть 4 базовых (примитивных) типа данных:

'ruby is live' # строка (String). Записывается либо через одинарные кавычки (''), либо через двойные ("")
321321 # целое число (Integer). Позволяет нам также записать его с разделителем 321_321 для более удобного чтения
421.431 # Число с плавающей запятой (Float)
true # Логический тип данных (Boolean). Либо true, либо false
false # Логический тип данных (Boolean). Либо true, либо false

# - служит для написания комментариев в коде. Эти комментарии служат подсказкой для разработчика, но в самой программе ничего, что есть в комментарии, выполняться не будет

Переменные

Наши значения по ходу работы программы мы может записывать в специальные контейнеры, которые будут хранить в себе это значение. Такие контейнеры называют переменные (Variable). Посмотрим на пример:

string_var = 'string example' # строка (String)
another_string_var = 'string example v2' # строка (String)
integer_var = 125 # целое число (Integer)
negative_int_var = -13132 # целое отрицательное число (Integer)
float_var = 0.345 # Число с плавающей запятой (Float)
negative_float_var = -0.345 # отрицательное число с плавающей запятой (Float)
true_var = true # Логический тип данных (Boolean)
false_var = true # Логический тип данных (Boolean)

Как можно заметить переменные имеют имена, которые ты как разработчик можешь придумать самостоятельно. Единственное что нельзя делать - называть переменные словами, которые зарезервированы системой. Список слов тут.

Сразу запоминаем правила:

  • переменные всегда пишем на английском

  • всегда маленькими буквами

  • если переменная состоит из 2 слов, то соединяем из нижним подчеркиванием _ (это называется snake case)

Но что можно делать с этим ? Давайте разберем

Операции

Начнем с базовых математических операций. Что можно делать с числами ? Все тоже самое. что и в математике: умножать, складывать, вычитать и тд.

В данном примере мы складывали простые числа. А теперь попробуем сложить целые числа и дробные.

Как можем заметить, при сложении дробного и целого числа мы получаем новое дробное число. Важно запомнить, что при математических операциях где хоть одно из чисел является дробным мы получим новое дробное число. Возможно возникнет вопрос: а что тут важного ? Давайте посмотрим на деление одного целого числа на другое.

Первое, что мы заметим, результат нашей операции не является дробное число. Если мы совершаем математическую операцию между двумя целыми числами, то и получаем целое число.

Второе, что мы заметим, здесь не работает правило округления как в математике. Если мы вспомним математическое правило, то при остатке от деления больше, чем 0.4 число должно округлиться до ближайшего числа в большую сторону. Ruby вместо этого просто напросто отбрасывает дробную часть как будто ее и нет вовсе. Как же тогда нам получить верное значение ? Для этого воспользуется правилом выше. Нам необходимо, чтобы хотя бы одно из чисел было дробным.

или тоже самое, но уже через переменные

В примере выше мы воспользовались функцией .to_f, которая превратит наше натуральное число в дробное, что позволит нам получить верное значение. Если вам по какой то причине нужна возможность округлять числа в ту или иную сторону, то можно воспользоваться следующими функциями:

  • .round - округление по правилам математики

  • .ceil - округление числа в большую сторону

  • .floor - коругление числа в меньшую сторону

Помимо числовых операций мы также можем манипулировать и строками. Если при сложении чисел мы получаем их сумму, то при сложении строк мы получаем объединенную новую строку.

В некоторых языках программирования существует невидимое преобразование числа в строку при попытке сложить его с другой строкой, но в Ruby это не работает

Для того, чтобы решить эту проблему нам необходимо явно превращать наше число в строку с помощью функции .to_s

Но вызывать каждый раз функцию .to_s банально неудобно, да и не принято в сообществе. Самым простым способом для сложение строк - использование интерполяции строк. Она позволяет нам вставлять любое значение внутрь строки используя синтаксис #{}, в котором мы можем размещать любые значения, будь то числа или даже какое то вычисление, при этом сам Ruby вызовет у конечного результата метод .to_s. Главное правило для интерполяции - использование двойных кавычек, а не одинарных.

Помимо этого мы можем изменять значение в одной и той же переменной

Или даже можем менять значения разных типов данных (что делать не рекомендуется во избежание запутанности кода)

Задание greeting

  • попросите пользователя ввести свое имя в консоль и запишите его в переменную с помощью gets

  • Распечатайте в консоль сообщение Hi, имя_пользователя

Дополнительный материал

Last updated