Arrays huma kollezzjonijiet ordnati; hashes huma kollezzjonijiet key-value (bħal dizzjonarji/maps). Huma l-istrutturi ta' data prinċipali ta' Ruby, iż-żewġ ma' metodi rikki u espressivi (prinċipalment mill-modulu Enumerable) li jagħmlu l-manipulazzjoni ta' data eleganti.
Arrays — kollezzjonijiet ordnati
fruits = ["apple", "banana", "cherry"]
fruits[0] # "apple" — index access
fruits[-1] # "cherry" — negative indexes from the end
fruits << "date" # append (or .push)
fruits.length # size
fruits.include?("apple") # membership
# Ruby's elegant array methods (from Enumerable)
fruits.map { |f| f.upcase } # transform each
fruits.select { |f| f.length > 5 } # filter
fruits.each { |f| puts f } # iterate
[3, 1, 2].sort # [1, 2, 3]
[1, 2, 3].sum # 6
Arrays huma dinamiċi, ordnati, indiċsati (b'appoġġ għall-indiċi negattivi), u għandhom sett rikk ta' metodi (map, select, reduce, eċċ.) għal ipproċessar ta' data eleganti.
Hashes — kollezzjonijiet key-value
# symbol keys (the idiom) with modern syntax
user = { name: "Ann", age: 30, role: :admin }
user[:name] # "Ann" — access by key
user[:email] = "[email protected]" # add/set
user.key?(:name) # check key existence
user.fetch(:name) # access with an error if missing (or a default)
# iterate key-value pairs
user.each { |key, value| puts "#{key}: #{value}" }
user.keys; user.values
user.map { |k, v| "#{k}=#{v}" }
Hashes immappjaw ċwievet għal valuri. Is-sintassi idiomatika tuża symbol keys ({ name: "Ann" }), u hashes għandhom metodi rikki għall-aċċess, l-iterazzjoni, u t-trasformazzjoni. fetch jipprovdi aċċess sigur (b'valur default jew żball għal ċwievet li mhumiex preżenti).
Mudelli utli
# default values
counts = Hash.new(0)
counts[:x] += 1 # works even though :x wasn't set (default 0)
# nested structures (common for JSON-like data)
data = { users: [{ name: "Ann" }, { name: "Bob" }] }
data[:users].first[:name] # "Ann"
Għaliex importa
Arrays u hashes huma l-istrutturi fundamentali ta' data ta' Ruby — użati kostantement għall-ħżin u l-ipproċessar ta' kollezzjonijiet ta' data — għalhekk it-tħarriġ tagħhom hu għarfien essenzjali ta' kuljum. Arrays (kollezzjonijiet ordnati u indiċsati b'appoġġ għall-indiċi negattivi) u hashes (maps key-value) jkopru l-ħamsa parte tal-bżonnijiet ta' ġestjoni ta' data (listi, records, konfigurazzjoni, data simili għal JSON).
Kieku jgħadd-hom potenti partikolarment f'Ruby hu l-biblioteka ta' metodi rikka u espressiva (prinċipalment mill-modulu Enumerable) — map, select, reduce, each, u għexieren oħrajn — li jippermettuk itrasforma, tiffiltru, u tipproċessa data b'eleganza b'kodiċi konċiż u leggibil minflok loops verbali, jinkarna l-stil espressiv ta' Ruby.
Il-għarfien tal-konvenzjonijiet idiomatiki — speċjalment symbol keys għal hashes ({ name: "Ann" }) u mudelli utli bħal Hash.new(0) għal valuri default, fetch għall-aċċess sigur, u strutturi nested għal data kumplessa — hu importanti għall-kitba ta' Ruby pulita u idiomatika.
Billi arrays u hashes jidhru f'kull programm ta' Ruby, u billi l-metodi rikki tagħhom huma ċentrali għall-istil eleganti ta' ipproċessar ta' data ta' Ruby (u għat-tħaddim ma' Rails, JSON, u APIs), il-fluwenza ma' tagħhom — il-ħolqien, l-aċċess, l-iterazzjoni, u t-trasformazzjoni ta' arrays u hashes b'metodi espressivi — hu għarfien fundamentali, li għandek taf, li jiffonda l-iżvilupp effikaċi u idiomatiku ta' Ruby.
