Laatste gedachten

Welkom bij Ruby on Rails van Scratch Week 4! Deze week gaan we praten over Ruby-syntaxis. Na deze tutorial denk ik dat je het framework veel beter zult begrijpen en dat je je veel comfortabeler voelt om dingen zelf te doen. Oh ja, en deze week is er een verrassing - een screencast! Dus zonder verder oponthoud, hier is week 4!

Inhalen

Als u delen 1, 2 of 3 niet hebt gelezen, wordt u sterk aangeraden deze te bekijken voordat u verder gaat met deze zelfstudie.

  • Week een
  • Week twee
  • Week drie

Vorige week…

Vorige week hebben we meer over het raamwerk geleerd. We hadden het in het bijzonder over zaken als interactie tussen verschillende controllers door acties te erven, renderen en omleiden.

Deze week

Zoals je zou verwachten, kun je in een tutorial nauwelijks een volledige taal leren, dus waarschijnlijk zullen we alleen essentiële ruby ​​moeten overbruggen in twee tutorials. Hoe dan ook, voor deze tutorial stel ik ons ​​voor om nummers en strings te dekken. Dit zijn waarschijnlijk de twee meest elementaire en essentiële technieken in de robijntaal. Als je snaren en cijfers eenmaal onder de knie hebt, zal je er waarschijnlijk zelfs niets van denken als je ze gebruikt.

Number Basics

Een type klasse in de ruby-programmeertaal is getallen. Eigenlijk zijn er twee soorten nummers; gehele getallen en zwevende punten. Gehele getallen zijn het standaardnummer. Als u de wiskundeles weer gebruikt, kunnen gehele getallen geen decimalen bevatten. Evenzo kunt u in drijvende punten een decimaalteken gebruiken. Een ander belangrijk punt is dat getallen uiteindelijk worden geconverteerd naar een tekenreeks, maar nadat bijna al het andere is uitgevoerd. Daarom kunnen getallen en strings geen dingen samen doen, zoals concatenate.

integers

Gehele getallen zijn de standaardnummers die worden gebruikt in de ruby-taal. Gebruik ze als u geen decimale punt gaat hanteren. Geheel getalgetallen zijn bijvoorbeeld goed om door te tellen. Als u een robijnberekening uitvoert als een geheel getal en deze een decimaal heeft, wordt deze in feite afgebroken:

Berekening:

<%= 7/4 %>

Resultaat: 1

Drijvend punt

Dus, hoe precies gebruik je zwevende punten in plaats van gehele getallen? Er is een methode die het converteert:

<%= 7/4.to_f %>

Resultaat: 1,75

Converteren tussen verschillende klassen

Vaak zult u het ene type object naar het andere willen converteren, zodat u het kunt laten communiceren met objecten van die klasse. Gelukkig maakt robijn het heel gemakkelijk:

Convert to String:

<%= '5'.to_s %>

Converteer naar Integer:

<%= '5'.to_i %>

Omzetten in drijvend punt:

<%= '5/3'.to_f %>

Drijvende-punt-methoden

Wanneer u een getal omzet in een zwevend punt, krijgt u aanvullende methoden om hierop van toepassing te zijn. De belangrijkste zijn het manipuleren van het nummer bij het afronden.

ronding

<%= (5/3.to_f).round %>

Als u een drijvende-kommagetal heeft waarin u geen decimaalteken wilt, heeft u in feite één van de drie opties. Afronding zal naar boven of naar beneden afgerond worden op het dichtstbijzijnde hele cijfer. Het wordt afgerond naar het dichtstbijzijnde cijfer. (dat wil zeggen 2.3 wordt 2 en 2.55 wordt 3) In dit geval is het resultaat 2.

ceil

<%= (5/3.to_f).ceil %>

Net zoals de naam doet vermoeden, zal de methode ceil het zwevende punt een cijfer hoger zetten. Dus als het 1.2 is, is het 2 en als het 1.6 is, zal het nog steeds 2. zijn. In dit geval zou het resultaat 2 zijn.

Verdieping

<%= (5/3.to_f).floor %>

Floor is het tegenovergestelde van ceil, in zoverre dat het naar beneden botst. Met andere woorden, je kunt het bedenken alsof het gewoon de decimale punt wegknipt en / of leuk vindt wat er zou gebeuren in een normaal geheel getal. In dit geval zou het resultaat 1 zijn.

Teltechniek

Vaak moet je tellen als je programmeert. Er is een kortere methode in robijn, in plaats van variabele = variabele +1:

Voeg 1 toe aan de variabele: += 1

Trek 1 van de variabele af: -= 1

Meerdere variabelen door twee: * = 2

Verdeel de variabele door twee: / = 2

Laten we het bovenstaande toepassen door het toe te passen:

 Tel tellen: <%= count = 5 %> Voeg 1 (+ =) toe: <%= count += 1%> Trek 1 (- =) af: <%= count -= 1%> Vermenigvuldig met 2 (* =): <%= count *= 2%> Delen door 2 (/ =): <%= count /= 2%>

Welke produceert dit:

String Basics

We hebben de snaren al een beetje behandeld. Onthoud al dat 'Why Hello'-spul terug in week 2? Als je niet zeker weet wat je moet doen. We hadden al zin om snaren en aaneenschakeling te herkennen. Voor een korte bespreking hier is een fragment uit de string sectie:

String aaneenschakeling

U kunt een string in robijn creëren met behulp van aanhalingstekens. U kunt zelfs strings combineren door ze samen te voegen. Er zijn verschillende manieren om dit te doen. Het meest logische is om het te behandelen als wiskunde:

   String-demo   <%= 'This is kind of boring' %>
<%= 'Will I combine' + 'With You?' %>

Wanneer we dit uitvoeren, laten we zien hoe precies robijn is. Merk op dat er geen ruimte is tussen combineren en met. Voeg een spatie toe door er een toe te voegen vóór het citaat aan het einde van de combineer of eerder met.

Andere manieren om strings te combineren

Je kunt strings ook op twee andere manieren combineren. Eén methode zou zijn

<%= 'Will I combine'.concat('With You?') %>

Dit formaat is de standaard voor de meeste modifiers. We zullen later meer manieren bespreken. We hebben ook een derde manier om strings te combineren.

<%= 'Will I combine' << 'With You?' %>

Houd er echter rekening mee dat u met deze laatste methode geen lege tekenreeks kunt hebben. Dus als je de string met een variabele gaat invullen, zou ik een van de eerste twee gebruiken, voor het geval dat de variabele geen waarde heeft.

Andere String-methoden

Hier zijn wat meer methoden die u kunt toepassen op strings. De meeste spreken voor zich, dus ik zal de code gewoon laten zien. Voor al deze methoden kunt u ervan uitgaan dat ik al een lokale variabele heb genoemd tekst .

kapitaliseren

 <%= text.capitalize %> 

Ruil geval

 <%= text.swapcase %> 

Up Case

 <%= text.upcase %>

Down Case

 <%= text.downcase %>

Omgekeerde

 <%= text.reverse %> 

Meer methoden

Strip

 <%= 'Goodbye' + ' whitespace '.strip + 'And Hello!' %>

Met de stripmethode kunnen we witte ruimte van de string verwijderen.

invoegen

 <%= text.insert(5, '*Excuse Me* ') %> 

invoegen is bijna zoals de concat-methode, behalve dat je twee argumenten doorgeeft in plaats van één. (Het aanvullende argument is de locatie in de tekenreeks om de tekst in te voegen) Merk ook op dat invoegen in een variabele de tekenreeks permanent in de variabele invoegt.

Lengte

 <%= text.length %> 

De lengte methode retourneert niets in de tekenreeks, maar geeft iets meer informatie over de tekenreeks; specifiek de lengte van de string.

Daisy Chaining Methods

 <%= text.swapcase.reverse.strip %> 

Net als bij JQuery is een leuke functie over ruby-methoden de ketenbaarheid waarmee minder code kan worden geschreven.

Enkele of dubbele offertes?

U kunt dubbele of enkele aanhalingstekens in robijn gebruiken. Het maakt niet uit. Hoewel er enkele specifieke gebeurtenissen zijn waarbij u de ene boven de andere wilt gebruiken; kies er in de regel een en blijf gewoon bij. Nu zal ik enkele scenario's opsommen waar je de voorkeur zou geven boven de andere.

Een citaat in de string

Als je een enkel of dubbel aanhalingsteken in de string zelf hebt, kun je de string rond de andere soort quote wikkelen. Over de zeldzame kans dat u een dubbel en een enkel aanhalingsteken in de tekenreeks gebruikt, kunt u de backslash (\) vóór het symbool gebruiken om aan te geven dat het de tekenreeks niet mag beëindigen.

 <%= "Sally's cat is brown." %> <%= 'The "cat" is brown.' %> <%= 'Sally\'s "cat" is brown.' %> <%= 'I love the \\ mark.' %> 

De bovenstaande code wordt als het volgende uitgevoerd:

Sally's kat is bruin.
De "kat" is bruin.
Sally's "kat" is bruin.
Ik hou van het \ teken.

Code in het midden van een string uitvoeren

Normaal gesproken is het vrij uitdagend om code in het midden van een string uit te voeren. In robijn is er een nog eenvoudiger manier dan samenvoegen:

 <%= "This string #'*hguoC* '.reverse * 3 just got interrupted."%> 


Zoals je kunt zien kun je met de bovenstaande code robijncode in een string uitvoeren. Merk echter op dat je dubbele aanhalingstekens met de string moet gebruiken.

Laatste gedachten

Ok, dus hopelijk heb je een veel beter en dieper begrip van cijfers en strings en hoe je met elk van hen kunt werken. Volgende week zullen we praten over meer ruby ​​syntax; met name bereiken en hashes. Als je eenmaal weet hoe je daarmee moet werken, groeien je mogelijkheden eindeloos. Zorg dat je hier ook volgende week goed mee om kunt gaan; probeer te experimenteren en te zien wat werkt. Zoals gewoonlijk, als je dit nuttig vond, vertel het dan!

  • Abonneer u op de NETTUTS RSS-feed voor meer dagelijkse webontwikkelingen, tuts en artikelen.