Добро пожаловать в 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, используя кавычки. Вы даже можете объединять строки, объединяя их вместе. Есть несколько способов сделать это. Самое логичное, относиться к этому как к математике:
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
.
капитализировать
<% = text.capitalize%>
Сменный чехол
<% = text.swapcase%>
Up Case
<% = text.upcase%>
Случай вниз
<% = text.downcase%>
Задний ход
<% = text.reverse%>
Больше методов
полоса
<% = 'До свидания' + 'пробел' .strip + 'И привет!' %>
Метод полосы позволяет нам убрать пустое пространство из строки.
Вставка
<% = text.insert (5, '* Извините * *)%>
Вставка почти как метод concat, за исключением того, что вы передаете два аргумента вместо одного. (Дополнительным аргументом является местоположение в строке, в которую нужно вставить текст). Также обратите внимание, что вставка в переменную приведет к постоянной вставке строки в переменную.
длина
<% = text.length%>
Метод length не возвращает ничего в строке, а скорее говорит вам что-то о строке; в частности, длина строки.
Методы цепочки Дейзи
<% = text.swapcase.reverse.strip%>
Как и в случае с JQuery, хорошей особенностью методов ruby является возможность объединения, позволяющая писать меньше кода.
Одинарные или двойные кавычки?
Вы можете использовать двойные или одинарные кавычки в рубине. Это не важно Хотя есть некоторые конкретные случаи, когда вы можете использовать один поверх другого; Как правило, выберите один и просто придерживайтесь его. Теперь я перечислю несколько сценариев, в которых вы бы предпочли один другому.
Цитата в строке
Если внутри самой строки есть одинарная или двойная кавычка, вы можете заключить строку в кавычки другого типа. В редких случаях, когда в строке есть двойная и одинарная кавычка, вы можете использовать обратную косую черту (\) перед символом, чтобы указать, что строка не должна заканчиваться.
<% = "Кот Салли коричневый." %> <% = '"Кошка" коричневая. " %> <% = 'Кошка Салли коричневая.' %> <% = 'Я люблю знак \\.' %>
Приведенный выше код будет выводиться следующим образом:
Кошка Салли коричневая.
«Кот» коричневый.
«Кошка» Салли коричневая.
Я люблю \ знак.
Выполнение кода в середине строки
Обычно довольно сложно выполнить код в середине строки. В ruby есть еще более простой способ, чем конкатенация:
<% = "Эта строка # {'* hguoC *' .reverse * 3} только что прервана."%>
Как вы можете видеть, приведенный выше код позволяет выполнять код ruby внутри строки. Обратите внимание, что вы должны использовать двойные кавычки со строкой.
Последние мысли
Итак, надеюсь, у вас будет намного лучшее и более глубокое понимание чисел и строк и того, как работать с каждым из них. На следующей неделе мы поговорим о более рубиновом синтаксисе; особенно диапазоны и хэши. Если вы знаете, как с ними работать, ваши возможности будут расти бесконечно. Убедитесь, что вы хорошо разбираетесь в этом и на следующей неделе; попробуйте поэкспериментировать и посмотреть, что работает. Как обычно, если вы нашли это полезным, пожалуйста, копайте!
- Подпишитесь на RSS-канал NETTUTS, чтобы узнать о ежедневных новостях и статьях о веб-разработке.