HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>В работе над массивами есть особый набор операций, который пришёл к нам из математики - это операции над множествами. В Ruby для такого случая есть специальные операторы, близкие к их математическим эквивалентам.</p>
1 <p>В работе над массивами есть особый набор операций, который пришёл к нам из математики - это операции над множествами. В Ruby для такого случая есть специальные операторы, близкие к их математическим эквивалентам.</p>
2 <p>Представьте себе задачу поиска взаимных друзей пользователей. Для формирования такого списка на уровне кода, нужно сравнить два массива (мои друзья и друзья друга) и найти пересечение, то есть общих друзей. В данном случае массивы с друзьями - это множества, а операция поиска общих элементов - пересечение (intersection).</p>
2 <p>Представьте себе задачу поиска взаимных друзей пользователей. Для формирования такого списка на уровне кода, нужно сравнить два массива (мои друзья и друзья друга) и найти пересечение, то есть общих друзей. В данном случае массивы с друзьями - это множества, а операция поиска общих элементов - пересечение (intersection).</p>
3 <p>Пересечение на Ruby выглядит так:</p>
3 <p>Пересечение на Ruby выглядит так:</p>
4 <p>Такой оператор очень удобен своей естественностью. Сразу понятно, о чём идёт речь. Как и в большинстве других операторов в Ruby, мы имеем дело с вызовами методов:</p>
4 <p>Такой оператор очень удобен своей естественностью. Сразу понятно, о чём идёт речь. Как и в большинстве других операторов в Ruby, мы имеем дело с вызовами методов:</p>
5 <p>Подобная схема позволяет не только переопределять их поведение, но и комбинировать операторы между собой:</p>
5 <p>Подобная схема позволяет не только переопределять их поведение, но и комбинировать операторы между собой:</p>
6 <p>У множеств и массивов с точки зрения математики есть одно принципиальное отличие, о котором нужно помнить. Во множествах каждый элемент представлен ровно один раз (то есть все элементы - уникальны), в то время как в массивах такого ограничения не существует. Операции над множествами рассматривают массивы не как массивы, а именно как множества. Они удаляют дубли в результирующем массиве:</p>
6 <p>У множеств и массивов с точки зрения математики есть одно принципиальное отличие, о котором нужно помнить. Во множествах каждый элемент представлен ровно один раз (то есть все элементы - уникальны), в то время как в массивах такого ограничения не существует. Операции над множествами рассматривают массивы не как массивы, а именно как множества. Они удаляют дубли в результирующем массиве:</p>
7 <p><em>Объединение</em></p>
7 <p><em>Объединение</em></p>
8 <p>Множество, объединяющее в себе элементы исходных множеств.</p>
8 <p>Множество, объединяющее в себе элементы исходных множеств.</p>
9 <p><em>Дополнение</em></p>
9 <p><em>Дополнение</em></p>
10 <p>Множество, состоящее из элементов первого множества за исключением элементов, совпадающих со вторым множеством. Проще говоря, это разница между двумя множествами:</p>
10 <p>Множество, состоящее из элементов первого множества за исключением элементов, совпадающих со вторым множеством. Проще говоря, это разница между двумя множествами:</p>
11  
11