Вот программа: r02rubynumbers.rb
- # r02rubynumbers.rb
 - =begin
 - Числовые операторы Ruby:
 - + сложение
 - - вычитание
 - * умножение
 - / деление
 - =end
 - puts 1 + 2
 - puts 2 * 3
 - # Разделитель целого числа
 - # Когда вы оперируете целыми числами, Вы получаете целые ответы
 - puts 3 / 2
 - puts 10 - 11
 - puts 1.5 / 2.6
 
Целые числа являются объектами класса Fixnum или Bignum. Fixnum и Bignum классы представляют (?) целые числа различных размеров. Оба класса происходят (от общ. к частному, уменьшение) от Целых чисел (следовательно Числовых). Числа с плавающей точкой являются объектами класса Float, соответствующие двойному типу данных родной архитектуры. (Тута ваще запуталась. Из-за недостаточных знаний в математике, английском и программировании, ыы). 
Потом здесь надо будет замутить табличку, русифицированную.Операторы и приоритеты:
Метод Оператор Описание
+ [] []= Ссылка на элемент(?), множество элементов(?)
+ ** Возведение в степень
+ !~+- Нет, дополнение, унарные плюс и минус (имена методов для последних двух - "+@ и -@")
+ * / % Умножить, разделить и по модулю (остаток от деления)
+ + - Плюс и минус
+ >> << Правый и левый сдвиг
+ & "И" (побитовое для целых чисел) исключающее "или" и регулярное "или"
+ ∧ (побитовое для целых чисел)
+ <= < > >= Операторы сравнения
+ <=> = === != =~ !~ операторы равенства и сравнения с шаблоном (!= и !~
не могут быть определены как методы)
&& Логическое "и"
II Логическое "или"
.. ... Диапазон (включительный и исключительный)
?: Тройной if-then-else
= %= /= -= += I= &= >>= Назначение, присваивание
<<= *= &&= II= **=
defined? Проверка, определен ли символ
not Логическое отрицание
or and Логическое соединение
if unless while until Изменители выражений, ыы
begin/end Блоковое выражение
a. Инкрементарные и декрементарные операторы (++ и --) не доступны в Ruby, ни в "пере", ни в "пост" формах. Тем не менее, запомните, что += и -= доступны.
b. Скобки (круглые скобки) работают так же, как с регулярной арифметикой. То что находится в скобках считается в первую очередь (или, выражаясь техническим языком, содержимому в скобках отдается большее предпочтение).
с. Проверка отмеченных операторов (?) это своего рода синтетический сахар (подробней об этом далее) - где что-либо выглядит как оператор, но является вызовом метода.
Поведение модальных операторов Ruby выглядит следующим образом:b. Скобки (круглые скобки) работают так же, как с регулярной арифметикой. То что находится в скобках считается в первую очередь (или, выражаясь техническим языком, содержимому в скобках отдается большее предпочтение).
с. Проверка отмеченных операторов (?) это своего рода синтетический сахар (подробней об этом далее) - где что-либо выглядит как оператор, но является вызовом метода.
- puts (5 % 3) # выводит 2
 - puts (-5 % 3) # выводит 1
 - puts (5 % -3) # выводит -1
 - puts (-5 % -3) # выводит -2
 
Определение Ruby по модулю (%) оператор отличаются от аналогичных в C и Java. В Ruby -7%3 будет 2. В С и Java результат будет -1. В Ruby знак результата (для оператора %) всегда такой же, как знак второго операнда.
Различие между оператором or и II.
И or, и II возвращают свой первый аргумент, пока не будут иметь значение false, в случае которого они вычисляют значение выражения и возвращают свой второй аргумент. Это показано в следующем примере:
- puts nil || 2011
 - puts false || 2011
 - puts "ruby" || 2011
 
Вывод будет таким:
- >ruby test.rb
 - 2011
 - 2011
 - ruby
 
Единственная разница между or и II это их приоритет. У II больше приоритет, чем у or.
Принято употреблять II для присваивания значения переменной если только эта переменная еще не установлена. Это может быть написано вот так:
@variable = @variable || "default value"
или, более идиоматично, вот так:
@variable ||= "default value"
Одна причина для подобных альтернативных версий Булиановых операторов это то, что они имеют более низкий приоритет, чем операторы присвоения. Это означает, что вы можете писать Булиановы выражения, такие как, показаны ниже (которые присваивают значение переменным, пока она не столкнется со значением false.
if a = f(x) and b = f(y) and c = f(z) then d = g(a,b,c) end
Выражение просто не будет работать, если будет написано с && вместо and.
Фух, здесь еще править и править.
Комментариев нет:
Отправить комментарий