Jak používat metody pole v Ruby

Úvod do problematiky

Pole představují klíčovou datovou strukturu v programovacím jazyce Ruby. Jsou to v podstatě uspořádané sbírky hodnot. K jednotlivým prvkům pole se přistupuje prostřednictvím indexu, přičemž indexování začíná od nuly.

Flexibilita polí umožňuje jejich využití pro ukládání rozličných typů dat, ať už se jedná o číselné hodnoty, textové řetězce nebo dokonce složitější objekty. Kromě toho s nimi lze provádět řadu operací, jako je třídění, vyhledávání konkrétních prvků nebo vkládání nových hodnot.

V tomto článku se podíváme na různé metody, které Ruby nabízí pro práci s poli, a ukážeme si, jak s jejich pomocí efektivně řešit běžné programátorské úlohy.

Metody pro přidávání prvků

Array#<<

Metoda Array#<< slouží k přidání nového prvku na konec stávajícího pole. Výsledkem je původní pole, ovšem rozšířené o nový prvek.


my_array = [1, 2, 3]
my_array << 4

=> [1, 2, 3, 4]

Array#push

Metoda Array#push je v podstatě synonymem pro Array#<<, tedy funguje naprosto stejně.


my_array = [1, 2, 3]
my_array.push(4)

=> [1, 2, 3, 4]

Array#unshift

Na rozdíl od předchozích metod, Array#unshift přidává prvek na začátek pole. Původní pole je opět upraveno, tentokrát rozšířením o nový prvek na první pozici.


my_array = [1, 2, 3]
my_array.unshift(0)

=> [0, 1, 2, 3]

Array#insert

Metoda Array#insert umožňuje vložení nového prvku na libovolnou pozici, určenou indexem. Index musí být platný, tzn. v rozmezí od 0 do délky pole. I zde se modifikuje původní pole.


my_array = [1, 2, 3]
my_array.insert(1, 4)

=> [1, 4, 2, 3]

Metody pro odstraňování prvků

Array#pop

Metoda Array#pop odebírá z pole poslední prvek a zároveň jej vrací jako výsledek. Původní pole je tak o jeden prvek kratší.


my_array = [1, 2, 3]
my_array.pop

=> 3

my_array => [1, 2]

Array#shift

Array#shift funguje podobně jako Array#pop, avšak odebírá prvek z počátku pole. Také vrací odebraný prvek a upravuje původní pole.


my_array = [1, 2, 3]
my_array.shift

=> 1

my_array => [2, 3]

Array#delete

Metoda Array#delete odstraní z pole první výskyt zadaného prvku. Jako výsledek vrací odstraněný prvek nebo nil, pokud se prvek v poli nenachází.


my_array = [1, 2, 3]
my_array.delete(2)

=> 2

my_array => [1, 3]

Array#delete_at

Metoda Array#delete_at odebere prvek na konkrétní pozici určenou indexem. Index musí být v platném rozsahu. Metoda vrací smazaný prvek.


my_array = [1, 2, 3]
my_array.delete_at(1)

=> 2

my_array => [1, 3]

Metody pro třídění

Array#sort

Metoda Array#sort setřídí prvky pole vzestupně, tedy od nejmenšího k největšímu. Výsledkem je nové, setříděné pole, přičemž původní pole zůstává nezměněné.


my_array = [3, 1, 2]
my_array.sort

=> [1, 2, 3]

my_array => [3, 1, 2]

Array#sort_by

Metoda Array#sort_by umožňuje třídit prvky pole na základě kritéria definovaného blokem kódu. Tento blok by měl přijímat prvek pole a vracet hodnotu, podle které se má třídit. I zde je výsledkem nové setříděné pole a původní zůstává beze změn.


my_array = [["John", 20], ["Mary", 25], ["Bob", 18]]
my_array.sort_by { |name, age| age }

=> [[„Bob“, 18], [„John“, 20], [„Mary“, 25]]

my_array => [[„John“, 20], [„Mary“, 25], [„Bob“, 18]]

Array#reverse

Metoda Array#reverse obrátí pořadí prvků v poli. Vrací nové pole s prvky v obráceném pořadí, zatímco původní pole je ponecháno v původním stavu.


my_array = [1, 2, 3]
my_array.reverse

=> [3, 2, 1]

my_array => [1, 2, 3]

Metody pro vyhledávání

Array#include?

Metoda Array#include? ověřuje, zda pole obsahuje zadaný prvek. Vrací true, pokud se prvek v poli nachází, jinak vrací false.


my_array = [1, 2, 3]
my_array.include?(2)

=> true

Array#index

Metoda Array#index vrací index prvního výskytu zadaného prvku v poli. Pokud se prvek v poli nenachází, vrací metoda nil.


my_array = [1, 2, 3]
my_array.index(2)

=> 1

Array#find

Metoda Array#find vrací první prvek, který splňuje zadanou podmínku, definovanou pomocí bloku kódu. Blok by měl přijímat prvek pole a vracet true, pokud prvek splňuje podmínku.


my_array = [1, 2, 3]
my_array.find { |num| num > 2 }

=> 3

Array#find_index

Metoda Array#find_index vrací index prvního prvku, který splňuje zadanou podmínku, definovanou blokem kódu. Blok by měl opět přijímat prvek a vracet true, pokud prvek vyhovuje podmínce.


my_array = [1, 2, 3]
my_array.find_index { |num| num > 2 }

=> 2

Závěr

Pole jsou v Ruby velmi užitečnou datovou strukturou pro ukládání a organizaci dat. Znalost různých metod pro práci s poli je klíčová pro efektivní programování. V tomto článku jsme si představili nejpoužívanější metody pro přidávání, odebírání, třídění a vyhledávání prvků v poli. S jejich pomocí můžete s daty efektivně a elegantně pracovat.

Často kladené dotazy

1. Jak v Ruby vytvořím pole?
Pole vytvoříte pomocí hranatých závorek. Například: my_array = [1, 2, 3].

2. Jak zjistím délku pole?
Délku pole získáte metodou Array#length. Například: my_array.length.

3. Jak spojím dvě pole?
Dvě pole spojíte operátorem +. Například: [1, 2, 3] + [4, 5, 6].

4. Jak převedu pole na textový řetězec?
Pole na řetězec převedete pomocí metody Array#join. Například: [1, 2, 3].join(", ").

5. Jak z pole odstraním duplicitní prvky?
Duplicitní prvky odstraníte metodou Array#uniq. Například: [1, 2, 3, 1, 2].uniq.

6. Jak najdu největší a nejmenší prvek v poli?
Největší a nejmenší prvek najdete pomocí metod Array#max a Array#min. Například: [1, 2, 3].max.

7. Jak obrátím pořadí prvků v poli?
Pořadí prvků obrátíte metodou Array#reverse. Například: [1, 2, 3].reverse.

8. Jak odstraním prvek z pole podle jeho indexu?
Prvek odstraníte pomocí metody Array#delete_at. Například: `[1, 2,