venerdì 7 dicembre 2007

Zuccherini sintattici in Ruby

Quando qualcuno inizia a programmare in Ruby si porta dietro degli orrori sintattici provenieneti da altri linguaggi. Ad esempio:

if element == nil then
puts 'Youppppy!'
end

in Ruby posso utilizzare il metodo nil? implementato in ogni oggetto ed eliminare il then che non è obbligatorio. Quindi il nostro codice diventerà:

if element.nil?
puts 'Youppppy!'
end

per sintetizzare ancora, posso utilizzare lo stile condiviso con Perl, ovvero posso mettere la condizione dopo l'espressione da eseguire:

puts 'Youppppy!' if element == nil

che può essere ancora più accorciato in

puts 'Youppppy!' unless element


Un altro esempio che possiamo fare di come ruby sia molto compatto è con le iterazioni.
se volessi iterare l'array

pagine_interessanti = [1,2,5,7,19,45,99,167,98]


in uno linguaggio come il C dovrei fare

int pagine_interessanti[] = {1,2,5,7,19,45,99,167,98}
for (count = 1; count <= sizeof(pagine_interessanti), count++){
printf("Ho trovato interessante la pagina %dn",pagine_interessanti[count]);
}


in Ruby tutto diventa più semplice!

pagine_interessanti = [1,2,5,7,19,45,99,167,98]
for pagina in pagine_interessanti do
puts "Ho trovato interessante la pagina #{pagina}n"
end


il ciclo può diventare

pagine_interessanti = [1,2,5,7,19,45,99,167,98]
pagine_interessanti.each |pagina|
puts "Ho trovato interessante la pagina #{pagina}n"
end


...accorciando...


pagine_interessanti = [1,2,5,7,19,45,99,167,98]
pagine_interessanti.each{|pagina| puts "Ho trovato interessante la pagina #{pagina}n"}


oppure

[1,2,5,7,19,45,99,167,98].each{|pagina| puts "Ho trovato interessante la pagina #{pagina}n"}


come direbbe il buon Zio Ben di SpiderMan "Un grande potere impone grandi responsabilità”...
quindi anche se abbiamo a disposizione una sintassi molto compatta e malleabile bisogna fare attenzione a scrivere codice che sia comprensibile agli altri componenti del nostro team.

Nessun commento:

Posta un commento