Bienvenue dans Ruby on Rails à partir de la quatrième semaine! Cette semaine, nous allons parler de la syntaxe ruby. Après ce tutoriel, je pense que vous aurez une bien meilleure compréhension du framework et que vous vous sentirez beaucoup plus à l'aise pour faire les choses vous-même. Oh oui, et il y a une surprise cette semaine - un screencast! Alors sans plus tarder, voici la semaine 4!
Si vous n'avez pas lu les parties 1, 2 ou 3, il est vivement conseillé de les consulter avant de poursuivre ce didacticiel..
La semaine dernière, nous en avons appris davantage sur le cadre. Plus précisément, nous avons parlé d’interactions entre différents contrôleurs en héritant des actions, du rendu et de la redirection..
Comme vous vous en doutez, il est difficile d'enseigner une langue entière dans un seul tutoriel. Nous devrons donc probablement répartir le ruby essentiel en deux tutoriels. Quoi qu'il en soit, pour ce tutoriel, nous envisageons de couvrir les nombres et les chaînes. Ce sont probablement les deux techniques les plus fondamentales et essentielles de la langue ruby. En fait, une fois que vous maîtrisez les chiffres et les chaînes, vous ne les penserez probablement plus quand vous les utiliserez..
Un type de classe dans le langage de programmation Ruby est les nombres. En réalité, il existe deux types de nombres; entiers et points flottants. Les entiers sont le nombre par défaut. Si vous vous souvenez du cours de mathématiques, les entiers ne peuvent pas avoir de décimales. De même, en points flottants, vous pouvez avoir un point décimal. Un autre point important est que les nombres sont finalement convertis en chaîne, mais presque tout le reste est exécuté. Par conséquent, les nombres et les chaînes ne peuvent pas faire les choses ensemble comme concaténer.
Les entiers sont les nombres par défaut utilisés dans la langue ruby. Utilisez-les si vous n’allez pas avoir à composer avec un point décimal. Par exemple, les entiers sont bons pour compter par ceux. Si vous effectuez un calcul en ruby sous forme d’entier et qu’il comporte une virgule décimale, il sera essentiellement découpé:
Calcul:
<%= 7/4 %>
Résultat: 1
Alors, comment utilisez-vous exactement les points flottants au lieu des entiers? Il existe une méthode qui le convertit:
<%= 7/4.to_f %>
Résultat: 1,75
Souvent, vous souhaiterez convertir un type d'objet en un autre afin de pouvoir le faire interagir avec les objets de cette classe. Heureusement, le rubis facilite les choses:
Convertir en chaîne:
<%= '5'.to_s %>
Convertir en entier:
<%= '5'.to_i %>
Convertir en virgule flottante:
<%= '5/3'.to_f %>
Lorsque vous convertissez un nombre en nombre à virgule flottante, vous disposez de méthodes supplémentaires à appliquer. Les plus importants sont comment manipuler le nombre en arrondissant.
Arrondi
<%= (5/3.to_f).round %>
Dans le cas où vous avez un nombre à virgule flottante dans lequel vous ne voulez pas la virgule décimale, vous avez essentiellement l'une des trois options. L'arrondi sera arrondi au chiffre entier le plus proche. Il arrondira au chiffre le plus proche. (ie 2,3 sera 2 et 2,55 sera 3) Dans ce cas, le résultat serait 2.
Ceil
<%= (5/3.to_f).ceil %>
Comme son nom l’indique, la méthode ceil élève la virgule flottante d’un chiffre à l’autre. Donc si c’est 1.2 ce sera 2 et si c’est 1.6 ce sera toujours 2. Dans ce cas le résultat serait 2.
Sol
<%= (5/3.to_f).floor %>
Le sol est l'opposé du plafond, en ce sens qu'il le heurte. En d’autres termes, vous pouvez penser qu’il s’agit simplement de couper la virgule décimale et / ou de voir ce qui se passerait dans un entier normal. Dans ce cas, le résultat serait 1.
Souvent, lorsque vous programmez, vous devez compter. Il existe une méthode plus courte en ruby, plutôt que variable = variable +1:
Ajoutez 1 à la variable: += 1
Soustrayez 1 de la variable: -= 1
Multipliez la variable par deux: * = 2
Divisez la variable par deux: / = 2
Donc, appliquant ce qui précède, appliquons-le:
Comptage Compte: <%= count = 5 %> Ajouter 1 (+ =): <%= count += 1%> Soustraire 1 (- =): <%= count -= 1%> Multiplier par 2 (* =): <%= count *= 2%> Diviser par 2 (/ =): <%= count /= 2%>
Qui produit ceci:
Nous avons déjà traité un peu les chaînes. Rappelez-vous tous ces trucs 'Pourquoi bonjour' lors de la deuxième semaine? Si vous n'êtes pas sûr de revenir en arrière. Nous nous sommes déjà efforcés de reconnaître les chaînes et la concaténation. Pour un aperçu rapide, voici un extrait de la section des cordes:
Concaténation de cordes
Vous pouvez créer une chaîne en ruby en utilisant des guillemets. Vous pouvez même combiner des chaînes en les concaténant. Il y a plusieurs moyens de le faire. Le plus logique, c'est de le traiter comme des maths:
Démo de cordes <%= 'This is kind of boring' %>
<%= 'Will I combine' + 'With You?' %>
Lorsque nous publions ceci, nous montrons à quel point le rubis est exact. Notez qu'il n'y a pas d'espace entre combiner et avec. Pour ajouter un espace, ajoutez-en un avant la citation à la fin de la moissonneuse ou avant avec.
Autres façons de combiner des chaînes
Vous pouvez également combiner des chaînes de deux autres manières. Une méthode serait
<%= 'Will I combine'.concat('With You?') %>
Ce format est la norme pour la plupart des modificateurs. Nous couvrirons plus de moyens plus tard. Nous avons aussi une troisième façon de combiner des cordes.
<%= 'Will I combine' << 'With You?' %>
Notez cependant qu'avec cette dernière méthode, vous ne pouvez pas avoir une chaîne vide. Donc, si vous voulez remplir la chaîne avec une variable, j'utiliserais l'une des deux premières, juste au cas où la variable n'aurait pas de valeur.
Voici d'autres méthodes que vous pouvez appliquer aux chaînes. La plupart sont explicites, je vais simplement présenter le code. Pour toutes ces méthodes, vous pouvez supposer que j'ai déjà déclaré une variable locale nommée texte
.
Capitaliser
<%= text.capitalize %>
Swap Case
<%= text.swapcase %>
Up Case
<%= text.upcase %>
Down Case
<%= text.downcase %>
Sens inverse
<%= text.reverse %>
Bande
<%= 'Goodbye' + ' whitespace '.strip + 'And Hello!' %>
La méthode strip nous permet de supprimer les espaces blancs de la chaîne.
Insertion
<%= text.insert(5, '*Excuse Me* ') %>
Insertion est presque comme la méthode concat, sauf que vous passez deux arguments au lieu d'un. (L'argument supplémentaire étant l'emplacement dans la chaîne dans lequel insérer le texte) Notez également que l'insertion dans une variable insère de manière permanente la chaîne dans la variable.
Longueur
<%= text.length %>
le longueur méthode ne renvoie rien dans la chaîne, mais indique plutôt quelque chose à propos de la chaîne; spécifiquement la longueur de la chaîne.
Méthodes d'enchaînement de marguerites
<%= text.swapcase.reverse.strip %>
De la même manière que JQuery, une fonctionnalité intéressante sur les méthodes Ruby est la possibilité de chaînage qui permet d'écrire moins de code..
Vous pouvez utiliser des guillemets simples ou doubles en ruby. Ça n'a pas d'importance. Bien qu’il y ait des occurrences spécifiques où vous voudrez peut-être utiliser l’une sur l’autre; en règle générale, choisissez-en un et respectez-le. Maintenant, je vais énumérer quelques scénarios dans lesquels vous préféreriez un autre.
Une citation dans la ficelle
Si vous avez un seul ou deux guillemets dans la chaîne elle-même, vous voudrez peut-être envelopper la chaîne autour de l'autre type de citation. Sur la rare chance que vous ayez une citation double et une citation simple à l'intérieur de la chaîne, vous pouvez utiliser la barre oblique inverse (\) devant le symbole pour indiquer qu'il ne doit pas mettre fin à la chaîne..
<%= "Sally's cat is brown." %> <%= 'The "cat" is brown.' %> <%= 'Sally\'s "cat" is brown.' %> <%= 'I love the \\ mark.' %>
Le code ci-dessus serait affiché comme suit:
Le chat de Sally est marron.
Le "chat" est marron.
Le "chat" de Sally est marron.
J'aime la \ marque.
Exécuter du code au milieu d'une chaîne
Normalement, il est assez difficile d'exécuter du code au milieu d'une chaîne. En ruby, il existe un moyen encore plus simple que de concaténer:
<%= "This string #'*hguoC* '.reverse * 3 just got interrupted."%>
Comme vous pouvez le constater, le code ci-dessus vous permet d’exécuter du code ruby à l’intérieur d’une chaîne. Notez cependant que vous devez utiliser des guillemets doubles avec la chaîne.
Ok, alors j'espère que vous avez une compréhension bien meilleure et plus profonde des nombres et des chaînes, et de la façon de travailler avec chacun d'eux. La semaine prochaine, nous parlerons de plus de syntaxe ruby; particulièrement les gammes et les hashes. Une fois que vous savez travailler avec ceux-ci, vos possibilités se développeront à l'infini. Assurez-vous de bien maîtriser cette question la semaine prochaine également; essayez d'expérimenter et de voir ce qui fonctionne. Comme d'habitude, si vous trouvez cela utile, merci de le digg!