Ruby bloc
Vous savez déjà comment Ruby définit les méthodes et comment vous appelez les méthodes. De même, Ruby a le concept de blocs.
- Un bloc est constitué de morceaux de code.
- Vous devez donner un nom à un bloc.
- Le code dans le bloc est toujours entouré d'accolades {}.
- Les blocs sont toujours appelés depuis des fonctions portant le même nom. Cela signifie que si le nom de votre bloc esttest, alors vous utiliseriez la fonctiontestpour appeler ce bloc.
- Vous pouvez utiliser l'instructionyieldpour invoquer un bloc.
Syntaxe
Ici, vous apprendrez à utiliser une simple instructionyieldpour invoquer un bloc. Vous apprendrez également à utiliser une instructionyieldavec des paramètres pour invoquer un bloc. Dans les exemples, vous verrez ces deux types deyieldinstructions.
Instructionsyield
Examinons un exemple d'instruction yield :
Exemple
Essayez-le »
La sortie de l'exemple ci-dessus est :
在 test 方法内 你在块内 你又回到了 test 方法内 你在块内
Vous pouvez également passer une instruction yield avec des paramètres. Voici un exemple :
Exemple
Essayez-le »
La sortie de l'exemple ci-dessus est :
你在块 5 内 在 test 方法内 你在块 100 内
Ici,yieldl'instruction est suivie de paramètres. Vous pouvez même passer plusieurs paramètres. Dans le bloc, vous pouvez placer une variable entre deux barres verticales pour accepter des paramètres. Par conséquent, dans le code ci-dessus, l'instruction yield 5 transmet la valeur 5 au bloc test en tant que paramètre.
Maintenant, regardez l'instruction suivante :
Ici, la valeur 5 est reçue dans la variable i. Maintenant, observez l'instruction puts suivante :
La sortie de cette instruction puts est :
Si vous voulez passer plusieurs paramètres, alors l'instructionyieldse présente comme suit :
À ce stade, le bloc se présente comme suit :
Les paramètres sont séparés par des virgules.
Blocs et méthodes
Vous avez vu comment les blocs et les méthodes sont liés les uns aux autres. Vous utilisez généralement l'instruction yield pour invoquer un bloc depuis une méthode du même nom. Par conséquent, le code est le suivant :
Exemple
Cet exemple est la façon la plus simple d'implémenter un bloc. Vous utilisez l'instructionyieldpour invoquer le bloc test.
Cependant, si le dernier paramètre d'une méthode est précédé de &, vous pouvez passer un bloc à cette méthode, et ce bloc peut être affecté au dernier paramètre. Si * et & apparaissent ensemble dans la liste des paramètres, & doit être placé après.
Exemple
Essayez-le »
La sortie de l'exemple ci-dessus est :
Hello World!
Blocs BEGIN et END
Chaque fichier source Ruby peut déclarer un bloc de code à exécuter lors du chargement du fichier (un bloc BEGIN), et un bloc de code à exécuter après la fin de l'exécution du programme (un bloc END).
Exemple
Un programme peut contenir plusieurs blocs BEGIN et END. Les blocs BEGIN sont exécutés dans l'ordre où ils apparaissent. Les blocs END sont exécutés dans l'ordre inverse de leur apparition. Lorsqu'il est exécuté, le programme ci-dessus produit le résultat suivant :
BEGIN 代码块 MAIN 代码块 END 代码块Autres extensions