Benvenuti in Ruby on Rails From Scratch Week 4! Questa settimana parleremo della sintassi del ruby. Dopo questo tutorial, credo che avrai una migliore comprensione del framework e ti sentirai molto più a tuo agio nel fare le cose da solo. Oh sì, e questa settimana c'è una sorpresa: uno screencast! Quindi, senza ulteriori indugi, ecco la settimana 4!
Se non hai letto le parti 1, 2 o 3, si consiglia vivamente di esaminarle prima di continuare con questo tutorial.
La settimana scorsa abbiamo appreso di più sul framework. Nello specifico, abbiamo parlato di cose come l'interazione tra diversi controller ereditando azioni, rendering e reindirizzamento.
Come puoi immaginare, difficilmente puoi insegnare un'intera lingua in un solo tutorial, quindi probabilmente dovremo analizzare solo il rubino essenziale in due tutorial. Ad ogni modo, per questo tutorial mi immagino di coprire numeri e stringhe. Queste sono probabilmente le due tecniche più basilari ed essenziali nel linguaggio rubino. In effetti, una volta capito il numero di stringhe e numeri, probabilmente non penserai nemmeno a niente di loro quando li usi.
Un tipo di classe nel linguaggio di programmazione rubino è numeri. In realtà, ci sono due tipi di numeri; interi e punti mobili. I numeri interi sono il numero predefinito. Se ricordi di tornare alla classe matematica, gli interi non possono avere posizioni decimali. Allo stesso modo, in punti mobili, puoi avere un punto decimale. Un altro punto importante è che i numeri vengono alla fine convertiti in una stringa, ma dopo quasi tutto il resto viene eseguito. Pertanto, numeri e stringhe non possono fare cose insieme come concatenati.
I numeri interi sono i numeri predefiniti usati nel linguaggio rubino. Usali se non hai intenzione di avere a che fare con un punto decimale. Ad esempio, gli interi sono buoni per il conteggio di quelli. Se si esegue un calcolo in ruby come numero intero e ha un punto decimale, verrà essenzialmente troncato:
Calcolo:
<%= 7/4 %>
Risultato: 1
Quindi, come usi esattamente i punti mobili invece dei numeri interi? C'è un metodo che lo converte:
<%= 7/4.to_f %>
Risultato: 1,75
Spesso vorrete convertire un tipo di oggetto in un altro in modo che possiate farlo interagire con gli oggetti di quella classe. Fortunatamente, il rubino lo rende davvero facile:
Converti in stringa:
<%= '5'.to_s %>
Converti in intero:
<%= '5'.to_i %>
Converti in virgola mobile:
<%= '5/3'.to_f %>
Quando converti un numero in un punto mobile, ottieni metodi aggiuntivi per applicarlo. I più importanti sono come manipolare il numero durante l'arrotondamento.
Arrotondamento
<%= (5/3.to_f).round %>
Nel caso in cui si abbia un numero in virgola mobile in cui non si desidera la posizione decimale, si dispone fondamentalmente di una delle tre opzioni. L'arrotondamento si arrotonda verso l'alto o verso il basso fino alla cifra intera più vicina. Arrotonderà alla cifra più vicina. (cioè 2,3 sarà 2 e 2,55 sarà 3) In questo caso, il risultato sarebbe 2.
Ceil
<%= (5/3.to_f).ceil %>
Proprio come potrebbe suggerire il nome, il metodo ceil farà salire il virgola mobile di una cifra. Quindi se è 1.2 sarà 2 e se è 1.6 sarà ancora 2. In questo caso il risultato sarebbe 2.
Pavimento
<%= (5/3.to_f).floor %>
Floor è l'opposto di ceil, in quanto lo butta giù. In altre parole, puoi pensare ad esso come se fosse solo il taglio del punto decimale e / o come quello che succederebbe in un normale intero. In questo caso, il risultato sarebbe 1.
Spesso quando stai programmando, devi contare. C'è un metodo più breve in ruby, piuttosto che variabile = variabile +1:
Aggiungi 1 alla variabile: += 1
Sottrai 1 dalla variabile: -= 1
Più la variabile per due: * = 2
Dividi la variabile per due: / 2 =
Quindi, applicando quanto sopra, applichiamo:
Conteggio del conteggio: <%= count = 5 %> Aggiungi 1 (+ =): <%= count += 1%> Sottrai 1 (- =): <%= count -= 1%> Moltiplicare per 2 (* =): <%= count *= 2%> Dividi per 2 (/ =): <%= count /= 2%>
Che produce questo:
Abbiamo già affrontato un po 'le stringhe. Ricorda tutto ciò che è successo a "Why Hello" nella seconda settimana? Se non si è sicuri di ricontrollare. Abbiamo già deluso con il riconoscimento di stringhe e concatenazione. Per una rapida recensione, ecco un estratto dalla sezione delle stringhe:
Concatenazione di stringhe
Puoi creare una stringa in ruby usando le virgolette. Puoi anche combinare le stringhe concatenandole insieme. Ci sono diversi modi per farlo. Il più logico è trattarlo come la matematica:
Demo di stringa <%= 'This is kind of boring' %>
<%= 'Will I combine' + 'With You?' %>
Quando produciamo questo, mostriamo quanto sia esatto il rubino. Si noti che non vi è spazio tra la combinazione e con. Per aggiungere uno spazio basta aggiungerne uno prima della citazione alla fine della combinazione o prima con.
Altri modi di combinare le stringhe
È possibile combinare stringhe anche in altri due modi. Un metodo sarebbe
<%= 'Will I combine'.concat('With You?') %>
Questo formato è lo standard per la maggior parte dei modificatori. Tratteremo più volte in seguito. Abbiamo anche un terzo modo per combinare le stringhe.
<%= 'Will I combine' << 'With You?' %>
Si noti che con questo ultimo metodo non è possibile avere una stringa vuota. Quindi, se hai intenzione di riempire la stringa con una variabile, userei uno dei primi due, nel caso in cui la variabile non abbia un valore.
Ecco alcuni altri metodi che puoi applicare alle stringhe. La maggior parte sono auto-esplicativi quindi dimostrerò semplicemente il codice. Per tutti questi metodi, si può presumere che io abbia già dichiarato una variabile locale chiamata testo
.
Capitalizzare
<%= text.capitalize %>
Caso di scambio
<%= text.swapcase %>
Up Case
<%= text.upcase %>
Giù il caso
<%= text.downcase %>
Inverso
<%= text.reverse %>
Striscia
<%= 'Goodbye' + ' whitespace '.strip + 'And Hello!' %>
Il metodo strip ci consente di eliminare lo spazio bianco dalla stringa.
inserzione
<%= text.insert(5, '*Excuse Me* ') %>
inserzione è quasi come il metodo concat, tranne che stai passando due argomenti invece di uno. (L'argomento aggiuntivo è la posizione nella stringa in cui inserire il testo) Inoltre, si noti che l'inserimento in una variabile inserirà permanentemente la stringa nella variabile.
Lunghezza
<%= text.length %>
Il lunghezza il metodo non restituisce nulla nella stringa, ma piuttosto ti dice qualcosa sulla stringa; in particolare la lunghezza della stringa.
Metodi di Daisy Chaining
<%= text.swapcase.reverse.strip %>
Analogamente a JQuery, una buona caratteristica dei metodi ruby è la concatenabilità che consente di scrivere meno codice.
Puoi usare virgolette doppie o singole in rubino. Non importa. Sebbene ci siano alcuni eventi specifici in cui potresti volerne usare uno sull'altro; come regola generale, sceglierne una e limitatevi ad attenervisi. Ora elencherò alcuni scenari in cui preferiresti uno rispetto all'altro.
Una citazione nella stringa
Se hai una citazione singola o doppia all'interno della stringa stessa, potresti voler avvolgere la stringa attorno all'altro tipo di citazione. Sulla rara possibilità che tu abbia una virgola doppia e una singola all'interno della stringa, puoi usare la barra rovesciata (\) prima del simbolo per indicare che non dovrebbe terminare la stringa.
<%= "Sally's cat is brown." %> <%= 'The "cat" is brown.' %> <%= 'Sally\'s "cat" is brown.' %> <%= 'I love the \\ mark.' %>
Il codice sopra riportato verrebbe visualizzato come segue:
Il gatto di Sally è marrone.
Il "gatto" è marrone.
Il "gatto" di Sally è marrone.
Amo il \ mark.
Esecuzione del codice nel mezzo di una stringa
Normalmente è piuttosto difficile eseguire il codice nel mezzo di una stringa. Nel rubino, c'è un modo ancora più semplice di concatenare:
<%= "This string #'*hguoC* '.reverse * 3 just got interrupted."%>
Come puoi vedere il codice sopra ti permette di eseguire il codice rubino all'interno di una stringa. Nota comunque, che devi usare le virgolette doppie con la corda.
Ok, quindi spero tu abbia una comprensione molto migliore e più profonda di numeri e stringhe e come lavorare con ciascuno di essi. La prossima settimana parleremo di sintassi più ruby; in particolare gamme e hash. Una volta che sai come lavorare con quelli, le tue possibilità cresceranno all'infinito. Assicurati di avere una buona idea anche per la prossima settimana; prova a sperimentare e vedere cosa funziona. Come al solito, se hai trovato utile questo, per favore scava!