Ruby'de Diziler Nasıl Birleştirilir

"Birleştirmenin en iyi yolu nedir diziler"Bu soru oldukça belirsiz ve birkaç farklı anlama gelebilir.

birbirine bağlama

Birleştirme, bir şeyi diğerine eklemektir. Örneğin, dizileri birleştirme [1,2,3] ve [4,5,6] sana vereceğim [1,2,3,4,5,6]. Bu, birkaç şekilde yapılabilir. Yakut.

Birincisi artı operatörüdür. Bu bir tane ekleyecek dizi diğerinin sonuna, her ikisinin öğeleri ile üçüncü bir dizi oluşturmak.

Alternatif olarak, concat yöntemi (+ operatörü ve concat yöntemi işlevsel olarak eşdeğerdir).

Bu işlemlerin çoğunu yapıyorsanız bundan kaçınmak isteyebilirsiniz. Nesne oluşturma ücretsiz değildir ve bu işlemlerin her biri üçüncü bir dizi oluşturur. Bir diziyi yerinde değiştirmek istiyorsanız, yeni öğelerle daha uzun hale getirmek için << işlecini kullanabilirsiniz. Ancak, böyle bir şey denerseniz, beklenmedik bir sonuç elde edersiniz.

Beklenen yerine [1,2,3,4,5,6] elde ettiğimiz dizi [1,2,3,[4,5,6]]. Bu anlamlıdır, ekleme operatörü verdiğiniz nesneyi alır ve dizinin sonuna ekler. Diziye başka bir dizi eklemeye çalıştığınızı bilmiyor veya umursamıyor. Böylece kendimiz üstesinden gelebiliriz.

instagram viewer

Set İşlemleri

Dünya "birleştirme" de ayarlanan işlemleri tanımlamak için kullanılabilir. Kavşak, birleşim ve farkın temel küme işlemleri Ruby'de mevcuttur. "Kümeler" in o kümede benzersiz olan bir dizi nesneyi (ya da matematikte, sayılar) tarif ettiğini unutmayın. Örneğin, dizi üzerinde ayarlanmış bir işlem yapacak olsaydınız [1,1,2,3] Sonuç kümesinde 1 olsa bile Ruby ikinci 1'i filtreleyecektir. Bu ayar işlemlerinin liste işlemlerinden farklı olduğunu unutmayın. Kümeler ve listeler temelde farklı şeylerdir.

İki setin birleşimini kullanarak | Şebeke. Bu, "veya" işlecidir, bir öğe bir kümede veya diğerinde ise, sonuç kümesinde bulunur. Yani sonucu [1,2,3] | [3,4,5] dır-dir [1,2,3,4,5] (iki üçlü olmasına rağmen, bunun bir liste işlemi değil, ayarlanmış bir işlem olduğunu unutmayın).

İki kümenin kesişimi, iki kümeyi birleştirmenin başka bir yoludur. Bir "veya" işlemi yerine, iki kümenin kesişimi bir "ve" işlemidir. Elde edilen setin elemanları her ikisi de kümeler. Ve bir "ve" işlemi olarak, & operatörünü kullanırız. Yani sonucu [1,2,3] & [3,4,5] basitçe [3].

Son olarak, iki seti "birleştirmenin" başka bir yolu da farklarını almaktır. İki kümenin farkı, ilk kümedeki tüm nesnelerin kümesidir. değil ikinci sette. Yani [1,2,3] - [3,4,5] dır-dir [1,2].

Zipping

Son olarak, "sıkıştırma" var. İki dizi, bunları benzersiz bir şekilde birleştirerek birbirine sıkıştırılabilir. Sadece önce göstermek ve sonra açıklamak en iyisidir. Sonucu [1,2,3] Zip ([3,4,5]) dır-dir [ [1,3], [2,4], [3,5] ]. Peki burada ne oldu? İki dizi birleştirildi; ilk öğe, her iki dizinin birinci konumundaki tüm öğelerin listesidir. Sıkıştırma biraz garip bir işlemdir ve bunun için fazla bir şey bulamayabilirsiniz. Amacı, elemanları birbiriyle yakından ilişkili olan iki diziyi birleştirmektir.