Latest web development tutorials

rubí Bloque

Usted ya sabe cómo definir un método de Ruby y cómo se llama al método. Del mismo modo, Ruby tiene el concepto de un bloque.

  • Bloquear se compone de una gran cantidad de código.
  • Es necesario tomar un nombre de bloque.
  • código de bloque siempre se encierra entre llaves {} en el interior.
  • De la que siempre ha bloquear la llamada de función del mismo nombre. Esto significa que si su nombre de bloque para laprueba,entonces usted desea utilizar para llamar a este bloque deprueba defuncionamiento.
  • Puede utilizar la sentenciayieldpara llamar al bloque.

gramática

block_name{
   statement1
   statement2
   ..........
}

Aquí aprenderá cómo utilizar una declaración simplede rendimientopara llamar al bloque. También aprenderá cómo utilizar la declaraciónde rendimientocon parámetros al bloque llamado. En el ejemplo, verá dos tipos de declaraciónde rendimiento.

sentenciayield

Veamos un ejemplo de declaración de rendimiento:

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def test
   puts "在 test 方法内"
   yield
   puts "你又回到了 test 方法内"
   yield
end
test {puts "你在块内"}

Los ejemplos de los resultados operativos de arriba de la siguiente manera:

在 test 方法内
你在块内
你又回到了 test 方法内
你在块内

También se puede pasar declaración de rendimiento con los parámetros. He aquí un ejemplo:

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def test
   yield 5
   puts "在 test 方法内"
   yield 100
end
test {|i| puts "你在块 #{i} 内"}

Los ejemplos de los resultados operativos de arriba de la siguiente manera:

你在块 5 内
在 test 方法内
你在块 100 内

Aquí, después de la declaraciónde rendimientosiguió parámetros. Incluso puede pasar varios parámetros. En el bloque, se puede colocar una variable entre dos barras verticales para aceptar los parámetros. Por lo tanto, en el código anterior, el rendimiento de 5 declaración se pasa como un parámetro para el valor de 5 piezas de ensayo.

Ahora, mira el siguiente comunicado:

test {|i| puts "你在块 #{i} 内"}

Aquí, el valor de 5 recibirá la variable i. Ahora, ponemos observar la siguiente declaración:

puts "你在块 #{i} 内"

Esto pone a la instrucción de salida es:

你在块 5 内

Si desea pasar varios parámetros, entonces la declaraciónde rendimientoes el siguiente:

yield a, b

En este momento, como se muestra en el bloque:

test {|a, b| statement}

Parámetros separados por comas.

Bloques y métodos

Usted ha visto entre el bloque y el método de cómo están relacionados entre sí. Normalmente, se utiliza la sentencia yield llama a la cuadra del método con el mismo nombre. Por lo tanto, el código es el siguiente:

#!/usr/bin/ruby

def test
  yield
end
test{ puts "Hello world"}

Este ejemplo es la manera más simple para alcanzar el bloque. Se utiliza la sentenciayieldllama al bloque de prueba.

Pero si el último parámetro antes de que el método con Y a continuación, puede se pasa el método de un bloque, y este bloque puede ser asignado a el último parámetro. Si el * y Y también aparecen en la lista de parámetros, y debe ser colocado en la parte posterior.

#!/usr/bin/ruby

def test(&block)
   block.call
end
test { puts "Hello World!"}

Los ejemplos de los resultados operativos de arriba de la siguiente manera:

Hello World!

BEGIN y END

Cada archivo fuente Ruby puede declarar cuando los bloques de código (bloque BEGIN) cuando el archivo se carga a correr, y después de que el programa termina de ejecutar bloques de código para funcionar (bloque END).

#!/usr/bin/ruby

BEGIN { 
  # BEGIN 代码块
  puts "BEGIN 代码块"
} 

END { 
  # END 代码块
  puts "END 代码块"
}
  # MAIN 代码块
puts "MAIN 代码块"

Un programa puede contener varios bloques comienzan y terminan. bloque BEGIN se ejecuta en el orden en el que aparecen. bloques de extremo, tal como aparecen en orden inverso. Cuando se ejecuta, el programa anterior produce los siguientes resultados:

BEGIN 代码块
MAIN 代码块
END 代码块