Статьи

Ruby On Rails — Неделя 4

Добро пожаловать в Ruby on Rails From Scratch Week 4! На этой неделе мы поговорим о синтаксисе ruby. После этого урока я думаю, что вы будете лучше понимать основы и будете чувствовать себя намного комфортнее, если будете делать что-то самостоятельно. Ах да, и на этой неделе есть сюрприз — скринкаст! Итак, без лишних слов, вот неделя 4!

Если вы не читали Части 1, 2 или 3, настоятельно рекомендуем вам просмотреть их, прежде чем продолжить изучение этого учебника.

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

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

Одним из типов классов в языке программирования ruby ​​являются числа. На самом деле, есть два типа чисел; целые и с плавающей точкой. Целые числа — это номер по умолчанию. Если вы вспомните класс математики, целые числа не могут иметь десятичных разрядов. Аналогично, в числах с плавающей запятой вы можете иметь десятичную точку. Другим важным моментом является то, что числа в конечном итоге преобразуются в строку, но после почти все остальное выполняется. Следовательно, числа и строки не могут делать вещи вместе, как сцепление.

Целые числа — это числа по умолчанию, используемые в языке ruby. Используйте их, если вам не нужно иметь дело с десятичной точкой. Например, целые числа хороши для подсчета по единицам. Если вы выполняете вычисление в ruby ​​как целое число, и оно имеет десятичную точку, оно будет по существу обрезано:

Расчет:

1
<%= 7/4 %>

Результат: 1

Итак, как именно вы используете числа с плавающей запятой вместо целых чисел? Есть метод, который преобразует это:

1
<%= 7/4.to_f %>

Результат: 1,75

Часто вам захочется преобразовать один тип объекта в другой, чтобы вы могли заставить его взаимодействовать с объектами этого класса. К счастью, ruby ​​делает это действительно легко:

Преобразовать в строку:

1
<%= ‘5’.to_s %>

Преобразовать в целое число:

1
<%= ‘5’.to_i %>

Преобразовать в число с плавающей точкой:

1
<%= ‘5/3’.to_f %>

Когда вы конвертируете число в число с плавающей запятой, вы получаете дополнительные методы для применения к нему. Самые важные из них — как манипулировать числом при округлении.

округление

1
<%= (5/3.to_f).round %>

Если у вас есть число с плавающей запятой, в котором вы не хотите использовать десятичную дробь, у вас есть один из трех вариантов. Округление округляется вверх или вниз до ближайшего целого числа. Он округляется до ближайшей цифры. (т.е. 2.3 будет 2, а 2.55 будет 3). В этом случае результат будет 2.

перекрывать

1
<%= (5/3.to_f).ceil %>

Как и следует из названия, метод ceil поднимает число с плавающей запятой на цифру. Так что, если это 1.2, то будет 2, а если 1.6, то все равно будет 2. В этом случае результат будет 2.

Пол

1
<%= (5/3.to_f).floor %>

Пол — противоположность потолка, в котором он падает. Другими словами, вы можете думать об этом, как будто вы просто обрезаете десятичную точку и / или как то, что происходит в обычном целом числе. В этом случае результат будет 1.

Часто, когда вы программируете, вы должны считать. В ruby ​​есть более короткий метод, чем variable = variable +1:

Добавьте 1 к переменной: + = 1

Вычтите 1 из переменной: — = 1

Умножьте переменную на два: * = 2

Разделите переменную на два: / = 2

Итак, применяя выше, давайте применим это:

1
2
3
4
5
6
7
         
 Counting
Count: <%= count = 5 %>
Add 1 (+=): <%= count += 1%>
Subtract 1 (-=): <%= count -= 1%>
Multiply by 2 (*=): <%= count *= 2%>
Divide by 2 (/=): <%= count /= 2%>

Который производит это:

Ruby on Rails Numbers

Мы уже немного разбирались со строками. Помните все это «Почему Привет» на второй неделе ? Если вы не уверены, чтобы проверить еще раз. Мы уже разбираемся с распознаванием строк и конкатенацией. Для быстрого обзора вот выдержка из строкового раздела:

Конкатенация строк

Вы можете создать строку в ruby, используя кавычки. Вы даже можете объединять строки, объединяя их вместе. Есть несколько способов сделать это. Самое логичное, относиться к этому как к математике:

01
02
03
04
05
06
07
08
09
10
11
<html>
  <head>
  <title>String Demo</title>
  </head>
 
<body>
     
  <%= ‘This is kind of boring’ %><br>
  <%= ‘Will I combine’ + ‘With You?’
  </body>
  </html>

Когда мы выводим это, мы показываем, насколько точен рубин. Обратите внимание, что между комбайном и с нет места. Чтобы добавить пробел, просто добавьте один перед кавычкой в ​​конце объединения или перед с.

Другие способы объединения строк

Вы также можете комбинировать строки двумя другими способами. Один метод будет

1
<%= ‘Will I combine’.concat(‘With You?’) %>

Этот формат является стандартом для большинства модификаторов. Мы рассмотрим больше способов позже. У нас также есть третий способ объединения строк.

1
<%= ‘Will I combine’ << ‘With You?’

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

Вот еще несколько методов, которые вы можете применить к строкам. Большинство из них говорят сами за себя, поэтому я просто продемонстрирую код. Для всех этих методов вы можете предположить, что я уже объявил локальную переменную с именем text .

капитализировать

Сменный чехол

Up Case

Случай вниз

Задний ход

полоса

Метод полосы позволяет нам убрать пустое пространство из строки.

Вставка

Вставка почти как метод concat, за исключением того, что вы передаете два аргумента вместо одного. (Дополнительным аргументом является местоположение в строке, в которую нужно вставить текст). Также обратите внимание, что вставка в переменную приведет к постоянной вставке строки в переменную.

длина

Метод length не возвращает ничего в строке, а скорее говорит вам что-то о строке; в частности, длина строки.

Методы цепочки Дейзи

Как и в случае с JQuery, хорошей особенностью методов ruby ​​является возможность объединения, позволяющая писать меньше кода.

Вы можете использовать двойные или одинарные кавычки в рубине. Это не важно Хотя есть некоторые конкретные случаи, когда вы можете использовать один поверх другого; Как правило, выберите один и просто придерживайтесь его. Теперь я перечислю несколько сценариев, в которых вы бы предпочли один другому.

Цитата в строке

Если внутри самой строки есть одинарная или двойная кавычка, вы можете заключить строку в кавычки другого типа. В редких случаях, когда в строке есть двойная и одинарная кавычка, вы можете использовать обратную косую черту (\) перед символом, чтобы указать, что строка не должна заканчиваться.

Приведенный выше код будет выводиться следующим образом:

Кошка Салли коричневая.
«Кот» коричневый.
«Кошка» Салли коричневая.
Я люблю \ знак.

Выполнение кода в середине строки

Обычно довольно сложно выполнить код в середине строки. В ruby ​​есть еще более простой способ, чем конкатенация:

Как вы можете видеть, приведенный выше код позволяет выполнять код ruby ​​внутри строки. Обратите внимание, что вы должны использовать двойные кавычки со строкой.

Последние мысли

Итак, надеюсь, у вас будет намного лучшее и более глубокое понимание чисел и строк и того, как работать с каждым из них. На следующей неделе мы поговорим о более рубиновом синтаксисе; особенно диапазоны и хэши. Если вы знаете, как с ними работать, ваши возможности будут расти бесконечно. Убедитесь, что вы хорошо разбираетесь в этом и на следующей неделе; попробуйте поэкспериментировать и посмотреть, что работает. Как обычно, если вы нашли это полезным, пожалуйста, копайте!