..


Gesponsorde links

Syntax alternatieven in Ruby

Artikel geschreven door Claudio Garau

Een van de grote voordelen van een eenvoudige en krachtige taal, zoals Ruby is de mogelijkheid om dezelfde resultaten op verschillende manieren, dat wil zeggen met behulp van verschillende syntactische constructies om dezelfde output te printen of gelijkwaardig gedrag te genereren.

In dit korte artikel geven we een eenvoudig voorbeeld op basis van de cycli en niet alleen het gewenste resultaat is het creëren van een eenvoudig programma dat alle nummers kunnen afdrukken in een bereik tussen "1" en "10".

Een oplossing zoals de volgende:

 



 zet 1,2,3,4,5,6,7,8,9,10

 
lijkt op het eerste gezicht erg handig, maar als ons assortiment, is veel groter (zeg tussen "1" en "100"), think again, wat we zoeken is een script dat slechts twee parameters nodig: de oorspronkelijke waarden Final (minimum en maximum) die beugel het bereik.
Op deze manier kan de gebruikte code weer worden gebruikt voor het genereren van uitvoer erg "dikke".

Elke pemette hebben we een initiële waarde te verhogen tot aan de beëindiging een waarde doorgegeven als argument te construeren construeren, zien we een voorbeeld:

 



 . (1 .. 10) Elke do | i |



  



 zet de







 einde

 
Dus voor elke (elk)-waarde in het bereik van overeenkomstige cijfer zal worden afgedrukt totdat het een waarde bereikt die gelijk is aan die vastgelegd in de voorwaarden die door de tweede parameter (in ons geval "10") genoemde voorwaarden.
De twee verticale balken die de variabele stapgrootte omsluiten ("| i |") worden gebruikt om de variabele af te bakenen binnen de lus isoleren zich van de rest van de code als het vertegenwoordigt een waarde "op zichzelf".

Hetzelfde resultaat kan worden bereikt door het variëren van de syntax gebruikt leggermanete en "save" de hoeveelheid code te typen:

 



 (1 .. 10) Elke. {| I | zet i}

 
De return waarde zal worden geretourneerd door de uitvoering van een verklaring ("{| i | zet i}") vaolore herhaald voor elk van de reeks op basis van twee parameters die de uitvoering te markeren.

Een alternatief zou kunnen worden gebaseerd op het gebruik van de lus, als volgt:

 



 voor i in (1 .. 10)



  



 zet de







 einde

 
Opnieuw passeerden we de 2-cyclus parameters die het bereik van waarden die de variabele "i" kan zijn gestegen in de 10 iteraties nodig is, waarbij de waarde "10" staat voor de voorwaarde dat de cyclus eindigt definiëren.

Maar onze alternatieven niet klaar zijn, laten we eens kijken naar deze eenvoudige regel code:

 



 1.upto (10) {| i | zet i}

 
Tot een methode om objecten die zal vertegenwoordigen numerieke types, de syntax van deze methode is een alternatief voor die van de "voor" write "x.upto (y)" is in feite gelijk aan "type for (i = x, x < = y, i + +) {...} ".
In de praktijk wordt met "upto" kunnen we hetzelfde resultaat krijgen van een cyclus zonder noodzakelijkerwijs toevlucht te nemen tot een lus, het resultaat is een besparing in termen van typen code en middelen die door het systeem naar een instructie uit te voeren.

Laten we nu een laatste voorbeeld:

 



 * Zet (1 .. 10)

 
De laatste regel van de code voorstel is zonder twijfel de gemakkelijkste van al die tot nu toe gezien, het eenvoudige gebruik van het symbool "*" kunt u alle waarden binnen het bereik doorgegeven als een argument af te drukken zonder toevlucht te nemen tot de verklaring zet elke cyclus of die aan de oproep van elke methode te geven.

In dezelfde categorie ...
E-Learning
Ruby en Ruby on Rails (Course) Ruby en Ruby on Rails (Course)
Maak software en webapplicaties met Ruby en RoR. Van 39 €.
Gesponsorde links