„Кой е най-добрият начин за комбиниране масиви? "Този въпрос е доста неясен и може да означава няколко различни неща.
наниз
Свързването е да прикачаш едно нещо към друго. Например, свързване на масивите [1,2,3] и [4,5,6] ще ви даде [1,2,3,4,5,6]. Това може да стане по няколко начина рубин.
Първият е операторът плюс. Това ще добави едно масив до края на друг, създавайки трети масив с елементите и на двете.
Като алтернатива, използвайте Concat метод (методът + оператор и concat са функционално еквивалентни).
Ако правите много от тези операции, може да искате да избегнете това. Създаване на обекти не е безплатна и всяка една от тези операции създава трети масив. Ако искате да промените масив на място, като го удължите с нови елементи, можете да използвате оператора <<.>
Вместо очакваното [1,2,3,4,5,6] масив, който получаваме [1,2,3,[4,5,6]]. Това има смисъл, операторът за добавяне взема обекта, който му давате и го добавя в края на масива. Не знаеше или не те интересува, че се опитваш да добавиш друг масив към масива. Така че ние сами можем да се закачаме върху него.
Задайте операции
Световният „комбинирай“ може да се използва и за описване на зададените операции. Основните зададени операции на пресичане, съединение и разлика са достъпни в Ruby. Не забравяйте, че "множествата" описват набор от обекти (или в математиката, числа), които са уникални в този набор. Например, ако трябваше да извършите зададена операция на масива [1,1,2,3] Ruby ще филтрира тази секунда 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] ]. И така, какво се случи тук? Двата масива бяха комбинирани, като първият елемент беше списък на всички елементи в първото положение на двата масива. Ципирането е малко странна операция и може да не намерите много полза за нея. Целта му е да комбинира два масива, чиито елементи са тясно свързани.