Ruby ofron kontroll-rrjedhje standarde (, , ) por me karakteristika të dallueshme dhe shprehëse: (), , i fuqishëm, dhe një preferencë për sesa unazat tradicionale. Kontrolli i rrjedhjes në Ruby lexohet natyralisht.
ifcasewhiledo_x if conditionunlesscase/whenif age >= 18
puts "adult"
elsif age >= 13
puts "teen"
else
puts "child"
end
# MODIFIER form — condition at the END (reads like English, idiomatic for short cases)
puts "adult" if age >= 18
puts "minor" unless age >= 18 # `unless` = if not (more readable than `if !`)
# everything is an expression — if returns a value
grade = if score >= 90 then "A" else "B" end
Forma modifikuese e Ruby-t (puts "x" if condition) vendos kushtin në fund për rreshta të vetme të concisë dhe të lexueshme. unless (= "nëse jo") lexohet më natyralisht se mohimi. Dhe if është një shprehje që kthen një vlerë.
case status
when :active then "running"
when :stopped, :paused then "halted" # multiple values
when 1..10 then "small number" # ranges
when String then "it's a string" # types (uses ===)
else "unknown"
end
# case can also do structural pattern matching (Ruby 3)
case data
in { name: String => name, age: Integer } # pattern matching with destructuring
puts name
end
case/when i Ruby-t është i fuqishëm — përputhet vlerat, diapazone, lloje, dhe (në Ruby 3) modele strukturore, duke përdorur === nën kapakun. Shumë më fleksibel se një switch bazik.
while count < 10 do count += 1 end
until done do ... end # until = while not
# ✅ but Ruby PREFERS iteration with blocks over explicit loops:
5.times { |i| puts i } # instead of a for loop
[1, 2, 3].each { |n| puts n } # iterate a collection
(1..10).each { |n| ... } # iterate a range
1.upto(5) { |i| ... }
Ruby ka while/until, por Ruby idiomatik preferon iterimin me blloqe (each, times, map) mbi unazat eksplicite — më shprehës dhe më i ngjashëm me Ruby-n.
Kuptimi i kontrollit të rrjedhjes në Ruby është njohuri themelore e përditshme, dhe disa karakteristika të dallueshme pasqyrojnë filozofinë e shprehës dhe të lexueshme të Ruby-t.
Forma modifikuese (do_x if condition) dhe unless (= "nëse jo") të lejojnë të shkruani kushtëzime concisë, të ngjashme me anglisht, që janë idiomatike në Ruby dhe shfaqen vazhdimisht.
Fakti që if është një shprehje (që kthen një vlerë) mundëson zëvendësime elegante.
case/when i Ruby-t është veçanërisht i fuqishëm — përputhet vlerat, diapazone, lloje, dhe (në Ruby 3) modele strukturore përmes === — e bëjnë atë shumë më fleksibel se një switch bazik dhe të dobishëm për degëzim të pastër shumë-rrugësh.
Czasëm, Ruby idiomatik preferon iterimin me blloqe (each, times, map, upto) mbi unazat tradicionale for/while — ky është një pikë stilistike përcaktuese: zhvilluesit e Ruby-t iterojnë koleksionet dhe diapazonet me metoda të bazuara në blloqe sesa unaza eksplicite, e cila është më shprehës dhe më e ngjashme me Ruby-n.
Kuptimi i këtyre konstrukteve dhe idiomave — forma modifikuese dhe unless për kushtëzime të lexueshme, case/when i fuqishëm, dhe veçanërisht preferencën për iterimin e bazuar në blloqe mbi unazat eksplicite — është i rëndësishëm për shkruarjen dhe leximin e Ruby-t idiomatik.
Meqenëse kontrolli i rrjedhjes shfaqet në çdo program, dhe meqenëse format ekspresive të Ruby-t (modifikuesit, unless, case i fuqishëm, iterim i bazuar në blloqe) mishërojnë filozofinë e tij të fokusuar në lexueshmëri, zotërimi i tyre është njohuri thelbësore dhe themelore për shkruarjen e Ruby-t natyral dhe idiomatik sesa përkthimin e modeleve me shumë unaza nga gjuhët e tjera.
Një bibliotekë pyetjesh intervistash IT me përgjigje të detajuara — nga Junior te Senior.
Dhuro