Quelle est la signification de faire dans Ruby?

Quelle est la signification de faire dans Ruby?

Ruby est un langage de programmation incroyable rempli de fonctionnalités et d'outils modernes pour la plupart des environnements de développement. Ruby a une fonctionnalité puissante, souvent négligée: blocs.

L'essence de cet article est de discuter et de comprendre ce que sont les blocs de rubis, comment ils fonctionnent et comment nous pouvons les utiliser dans nos programmes de rubis.

Nous commencerons par la syntaxe de base, puis discuterons des fonctionnalités telles que le rendement, qui peut être intimidant pour les nouveaux utilisateurs de rubis.

Que sont les blocs de rubis?

Comme c'est le cas dans d'autres langages de programmation, un bloc ou une fermeture est une fonction anonyme que vous enfermez à l'intérieur d'un mot-clé DO et terminal pour les blocs en ligne.

Les blocs vous permettent de regrouper un bloc de code dans des composants distincts que vous pouvez passer pendant l'appel de méthode comme paramètres.

Il existe deux façons de définir un bloc dans Ruby: le premier utilise le mot-clé DO…, l'autre utilise une paire de bretelles bouclées.

DO… Le bloc de fin est principalement utilisé lors de la définition d'un bloc de code qui s'étend sur plusieurs lignes, tandis que les accolades bouclées sont utilisées lors de la définition d'un bloc de code qui s'étend sur une seule ligne.

Vous passez les arguments d'un bloc entre une paire de caractères de tuyau | |

INDICE: Que vous utilisiez une seule ligne ou un bloc multi-ligne, la fonctionnalité ne change pas. Cependant, à des fins de lisibilité, utilisez des accolades bouclées pour un bloc de ligne unique et une apparition pour les blocs multi-lignes.

Exemple de base

Voici deux exemples simples d'un bloc rubis, l'un utilisant des accolades bouclées tandis que l'autre utilise… fin.

# une seule ligne -
['Java', 'C', 'C ++'].chaque | i | met i
# Multi-Line -> Do… fin
['Java', 'C', 'C ++'].chacun fait | i |
met je
fin

Les deux exemples ci-dessus produisent des résultats similaires:

  • Java
  • C
  • C++

L'exemple ci-dessus applique des blocs de rubis sous la forme la plus simple: nous passons le bloc dans chaque méthode de l'objet de tableau. Passez les arguments du bloc à l'intérieur d'une paire de caractères de tuyau; Dans l'exemple ci-dessus, l'argument est que je. Enfin, nous avons sorti la fonctionnalité du bloc à l'intérieur du corps du bloc (dans cet exemple, put).

Comprendre le mot-clé Ruby Rende

Vous pouvez utiliser des blocs de rubis dans une méthode standard. La fonctionnalité pour effectuer cette action est gracieuseté du mot clé de rendement.

Discutons en détail du mot clé de rendement.

Qu'est-ce que le rendement en Ruby?

Le rendement du mot-clé dans Ruby vous permet d'appeler un bloc défini à l'intérieur d'une méthode Ruby.

Comment ça fonctionne

Considérons un exemple qui nous aidera à comprendre comment fonctionne le mot clé de rendement. Considérez la méthode Ruby simple ci-dessous:

def bonjour
met "bonjour!"
fin

L'exemple ci-dessus est une simple méthode de rubis qui imprime «Bonjour!".

Si nous voulons ajouter plus de flexibilité au programme, nous pouvons permettre à l'utilisateur de passer un argument pendant l'invocation de la méthode.

Par conséquent, nous pouvons coder la méthode comme:

Def Hello (nom)
met "bonjour" "+ nom
fin
Bonjour ("USA")

Dans le deuxième exemple, nous avons un peu de flexibilité car nous pouvons passer n'importe quel nom à la méthode comme argument.

Nous pouvons étendre cela encore plus loin en utilisant un bloc de rubis. Lorsque nous passons le bloc à l'intérieur de la méthode, il sera exécuté et renverra les résultats.

Définition de la méthode de rendement

Pour créer une méthode qui accepte un bloc, nous utilisons le rendement du mot-clé. La syntaxe générale est comme indiqué:

def bonjour
rendement
fin

Lors de la définition, nous pouvons appeler la méthode et passer un bloc de code. La méthode exécutera le code et renvoie le résultat.

Passer un bloc de rubis à une méthode

Nous pouvons passer un bloc à la méthode en utilisant la syntaxe de bloc. Par exemple, nous pouvons appeler la méthode ci-dessus avec une syntaxe comme:

Bonjour met "Hello World"

Tant que la méthode contient le mot clé de rendement, vous pouvez passer n'importe quel bloc de code et l'exécuter.

NOTE: Une fois que vous avez défini un mot clé de rendement dans une méthode, vous devez passer un bloc lorsque vous appelez la méthode. Sinon, vous obtiendrez une erreur «sans bloc donné (rendement)».

Exemple 2

Prenons un autre exemple:

def bonjour
met "avant le rendement."
rendement
met "après le rendement."
fin
bonjour mets "je cède"

L'exemple ci-dessus illustre comment l'exécution d'une méthode utilisant le rendement fonctionne. La sortie du programme est ci-dessous:

Avant le rendement
Je suis le rendement
Après le rendement

Arguments de bloc Ruby

Ruby vous permet de passer des arguments au bloc Ruby. Les arguments de bloc sont définis dans le bloc de rendement et servent de paramètres de bloc.

L'ordre dans lequel vous passez l'argument est essentiel car le bloc les acceptera dans l'ordre défini.

def bonjour
rendement ("John Doe", 20)
fin
Bonjour | Nom, âge | met "Bonjour # nom, vous avez # âge ans"

Les paramètres définis à l'intérieur du bloc ont une portée locale et ne sont disponibles que dans le contexte du bloc.

Par conséquent, vous obtiendrez une variable non définie utilisée en dehors de la portée du bloc.

Exemple 3

La fonctionnalité du bloc ne change pas sur les blocs monomores ou multi-lignes. Nous pouvons illustrer cela en utilisant l'exemple ci-dessous:

zone DEF
rendement (7)
fin
zone faire
met "la zone du cirle est # 7 * 3.14159 CM2 "
fin

La sortie de l'exemple ci-dessus est:

La zone du cirle est de 21.99113cm2

Cela montre que les blocs multi-lignes ou une seule ligne, la fonctionnalité reste la même.

Blocs explicites

Dans les exemples précédents, nous avons défini les blocs comme implicites. Cependant, nous pouvons également les décrire comme explicites.

Les blocs explicites signifient que nous attribuons un nom à la liste des paramètres de la méthode.

Exemple def (& Block)
bloc.appel
fin
Exemple met "Exemple de bloc explicite"

Vous passez le nom du bloc à l'intérieur après l'ampère et. En utilisant le nom du bloc, vous pouvez passer le bloc enregistré à une autre méthode.

Bloquer la gestion des erreurs

Dans les sections précédentes, nous avons mentionné que le bloc de rendement est obligatoire. Cependant, vous pouvez implémenter une logique de gestion des erreurs simple si le rendement est fourni. Nous le faisons en utilisant le block_given? Méthode du noyau.

La méthode renvoie une valeur booléenne de vrai si le rendement est disponible et faux si autrement.

Considérez l'exemple simple ci-dessous:

def bonjour
Si block_given?
rendement
autre
met "rien ne s'est passé… [Erreur]"
fin
fin

Si nous appelons la méthode avec la valeur de rendement requise, la sortie sera:

bonjour met "bonjour là-bas!"
Bonjour!

D'un autre côté, appeler la méthode sans rendement exécutera le bloc Else:

Bonjour
Rien ne s'est passé… [Erreur]

En utilisant la valeur du bloc_given? Méthode, vous pouvez implémenter la logique de gestion des erreurs lorsqu'il n'y a pas de valeur de rendement.

Conclusion

Dans ce guide, nous avons discuté de Ruby Blocks, de ce qu'ils sont, de la façon dont ils fonctionnent et de la façon de les utiliser dans vos projets.

Merci pour la lecture!