Ruby on Rails díl.8, Ruby - Pole, hashe a řady

Napsal (») 8. 2. 2007 v kategorii Programování, přečteno: 2120×
obrazky/rubyonrailsn.png

Hosting www.banan.cz podporuje Ruby on Rails.

Pole


Pole je sbírka objektů indexovaných nezáporným celým číslem. Pole můžeme vytvořit jako objekt napsaním Array.new,nebo napsáním čárkou odděleného seznamu hodnot uvnitř hranatých závorek nebo pokud bude pole obsahovat jen řetězcové objekty, prostorově-omezený řetězec předcházený %w.

pole_jedna = Array.new
pole_dva = [] # těsnopis pro Array.new
pole_tři = ["a", "b", "c"] # pole_tři obsahuje "", "b" a "c"
pole_čtyři = %w'a b c' # pole_čtyři také obsahuje "", "b" a "c"

pole_tři[0] # => ""
pole_tři[2] # => "c"
pole_čtyři[0] # => ""
#záporné rejstříky jsou spočtené zpět z koncového
pole_čtyři[ -2] # => "b"
#[začátek, počet] vyjádřeno pomocí počtu prvků a indexu start
poli_čtyři[1,2] # => ["b", "c"]
#s použítím řady. Koncová poloha je obsažený v .. ale ne s ...
polem_čtyři[0..1] # => ["a", "b"]
pole_čtyři[0...1] # => ["a"]


Poslední metoda, používání %w, kdy subřetězce jsou oddělené prázdným místem. Následující příklad, první dva způsoby vytvoření pole řetězců jsou fungujou identicky zatímco poslední dva vytvoří velmi různé (ačkoli oba platné) pole.

pole_jedna = %w'apple oranžová hruška # => ["jablko", "pomeranč", "hruška"]
pole_dva = ' jablečná oranžová hruška '.split # => ["jablko", "pomeranč", "hruška"]
pole_jedno == pole_dva # => pravda
pole_tři = %w'dog:kočka:ptačí # => ["pes:kočka:pták"]
pole_čtyři = ' pes:kočka:bird'.split(':' ) # => # => ["pes", "kočka", "pták"]
pole_tři == pole_čtyři # => nepravda


Hashe


Hashe jsou v podstatě stejné jako pole, až na to, že hash nejen obsahuje hodnoty, ale také klíče ukazující na ty hodnoty. Každý klíč se může v hashi vyskytovat jen jednou. Hash je objekt vytvořený psaním Hash.new nebo psaním volitelného seznamu čárkou oddělených klíč => hodnota párů uvnitř {} závorek.

hash_jedna" = Hash.new
hašé_dva = {} # těsnopis pro Hash.new
hašé_tři = {"a" => => 1, "b" => => 2, "c" => => 3} #=> {"a"=>=>1, "b"=>=>2, "c"=>=>3}


Symboly jsou obvykle užívané pro Hash klíče (dovolují rychlejší rychlejší přístup), takže uvídíte třeba hashe deklarované takto:

hash_sym = { :=> 1, :b => 2, :c => 3} #=> {:b=>2, :c=>3, :=>1}


Řady


Řada představuje podmnožinu všech možných hodnot typu, pokud budeme v definici více precizní, veškeré možné hodnoty mezi počáteční hodnotou a konečnou hodnotou.

Řadou může být:

všechny celé čísla mezi 0 a 5.

všechny čísla (včetně ne-čísel celých) mezi 0 a 1, vyjma 1.

všechny znaky mezi ' t ' a ' y'.

V Ruby se tyto řady vyjádřují :

0..5
0.0...1.0
' t'..'y '


Proto se řady skládají z počáteční hodnoty, konečné hodnoty, a zda je konečná hodnota obsažená nebo ne (v těchto krátkých syntaxích, používání dvou . pro včetně a tři . pro vyjma).

Rozsah totiž představuje množinu hodnot, ne sekvenci. Proto,

5..0


ačkoli syntakticky správně, produkuje řadu s nulové délce.

Rozsahy jen mohou být vytvořený z instancí stejné třídy nebo podtřídy běžného rodiče, který musí být Comparable (zavádění <=>).

Řady jsou instance třídy Range, a mají jisté metody, například, určit zda hodnota je uvnitř rozsahu:

r = 0..5
pak platí r === 4 # => pravda
pak platí r === 7 # => nepravda

Štítky: Ruby on Rails
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel devět a devět