English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Vous savez déjà comment Ruby définit les méthodes et comment vous appelez les méthodes. De même, Ruby a une notion de bloc.
block_name{ statement1 statement2 .......... }
ici, vous apprendrez comment utiliser un simple yield instruction pour appeler le bloc. Vous apprendrez également comment utiliser une instruction avec paramètres yield instruction pour appeler le bloc. Dans l'exemple, vous verrez ces deux types de yield instruction.
Voyons un exemple d'instruction yield :
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test puts "À l'intérieur de la méthode test" yield puts "Vous êtes à nouveau à l'intérieur de la méthode test" yield fin test {puts "Vous êtes à l'intérieur du bloc"}
以上示例运行结果为:
à l'intérieur de la méthode test Vous êtes à l'intérieur du bloc Vous êtes à nouveau à l'intérieur de la méthode test Vous êtes à l'intérieur du bloc
Vous pouvez également transmettre une instruction yield avec paramètres. Voici un exemple :
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test yield 5 puts "À l'intérieur de la méthode test" yield 100 fin test {|i| puts "Vous êtes à l'intérieur du bloc #{i}"}
以上示例运行结果为:
vous êtes dans le bloc 5 à l'intérieur à l'intérieur de la méthode test vous êtes dans le bloc 10dans le bloc
iciyield L'instruction est suivie des paramètres. Vous pouvez même transmettre plusieurs paramètres. Dans le bloc, vous pouvez placer une variable entre deux barres obliques pour recevoir les paramètres. Par conséquent, dans le code ci-dessus, yield 5 L'instruction transmet la valeur au bloc test 5 comme paramètre.
Maintenant, regardons l'instruction suivante :
test {|i| puts "Vous êtes à l'intérieur du bloc #{i}"}
Ici, la valeur 5 reçoit la variable i. Observons maintenant l'instruction puts suivante :
puts "Vous êtes à l'intérieur du bloc #{i}"
La sortie de cette instruction puts est :
vous êtes dans le bloc5 à l'intérieur
Si vous souhaitez transmettre plusieurs paramètres, alors yield L'instruction apparaît ainsi :
yield a, b
Dans ce cas, le bloc apparaît ainsi :
test {|a, b| statement}
Les paramètres sont séparés par des virgules.
Vous avez vu comment les blocs et les méthodes sont liés. Vous utilisez généralement l'instruction yield pour appeler un bloc à partir d'une méthode portant le même nom. Par conséquent, le code suivant s'affiche ainsi :
#!/usr/bin/ruby def test yield fin test{ puts "Hello world"}
C'est la manière la plus simple d'implémenter un bloc. Vous utilisez yield l'instruction appelle le bloc test.
Si toutefois le dernier paramètre de la méthode est précédé de &, vous pouvez passer un bloc à cette méthode et ce bloc peut être assigné au dernier paramètre. Si * Le & apparaît également dans la liste des paramètres, & doit être placé à l'arrière.
#!/usr/bin/ruby def test(&block) block.call fin test { puts "Hello World!"}
以上示例运行结果为:
Hello World!
每个 Ruby 源文件可以声明当文件被加载时要运行的代码块(BEGIN 块),以及程序完成执行后要运行的代码块(END 块)。
#!/usr/bin/ruby 代码块开始 { # 代码块开始 puts "代码块开始" } 代码块结束 { # 代码块结束 puts "代码块结束" } # 主要代码块 puts "主要代码块"
一个程序可以包含多个 BEGIN 和 END 块。BEGIN 块按照它们出现的顺序执行。END 块按照它们出现的相反顺序执行。当执行时,上面的程序输出以下结果:
代码块开始 主要代码块 代码块结束