Како комбиновати низове у Руби-у

„Који је најбољи начин за комбиновање низови"Ово питање је прилично нејасно и може значити неколико различитих ствари.

Спајање

Спајање је додавање једне ствари другој. На примјер, спајање низова [1,2,3] и [4,5,6] даће вам [1,2,3,4,5,6]. То се може учинити на неколико начина Руби.

Први је плус оператор. Ово ће додати један низ до краја другог, стварајући трећи низ с елементима оба.

Алтернативно, користите цонцат метода (метода + оператор и цонцат су функционално еквивалентне).

Ако радите пуно ових операција, можда бисте то желели избећи. Израда објекта није бесплатан, а свака од ових операција ствара трећи низ. Ако желите да измените низ на свом месту, продужујући га са новим елементима, можете да користите << оператора. Међутим, ако покушате нешто овако, добићете неочекивани резултат.

Уместо очекиваног [1,2,3,4,5,6] низ смо добили [1,2,3,[4,5,6]]. Ово има смисла, оператор додавања узима објект који му дајете и додаје га на крају низа. Није знало или није брига што сте покушали да додате други низ у поље. Тако можемо и сами преварити петљу.

instagram viewer

Подесите операције

Светски "комбиновани" се такође може користити за описивање задатих операција. Основне операције операција раскрснице, споја и разлике доступне су у Руби-у. Запамтите да "сетови" описују скуп објеката (или у математици, бројеве) који су јединствени у том скупу. На примјер, ако сте требали направити операцију скупа на пољу [1,1,2,3] Руби ће филтрирати тај други 1, иако је 1 можда у резултатском сету. Дакле, имајте на уму да су ове постављене операције различите од операција пописа. Сетови и листе су битно различите ствари.

Можете спојити два сета користећи | оператера. Ово је оператор "или", ако је елемент у једном или другом скупу, то је у резултирајућем скупу. Дакле, резултат [1,2,3] | [3,4,5] је [1,2,3,4,5] (запамтите да иако постоје две тројке, ово је подешена операција, а не операција пописа).

Пресјек два скупа још је један начин комбинирања два скупа. Уместо „или“ операције, пресек два скупа је операција „и“. Елементи резултирајућег скупа су они унутра и једно и друго сетови. И, као операција "и", користимо & оператор. Дакле, резултат [1,2,3] & [3,4,5] је једноставно [3].

На крају, други начин да се "комбинују" два сета је да се њихова разлика. Разлика два скупа је скуп свих објеката у првом скупу који јесте не у другом сету. Тако [1,2,3] - [3,4,5] је [1,2].

Зиппинг

Коначно, долази до „затварања“. Два низа могу се компримирати комбинујући их на прилично јединствен начин. Најбоље је да то прво покажете и након тога објасните. Резултат [1,2,3] .зип ([3,4,5]) је [ [1,3], [2,4], [3,5] ]. Па шта се овде догодило? Два низа су комбинирана, при чему је први елемент био попис свих елемената у првом положају оба поља. Копирање је помало чудна операција и можда јој нећете наћи много користи. Његова сврха је комбинирање два низа чији елементи уско корелирају.