Latest web development tutorials

Ruby Blok

Wiesz już, jak zdefiniować metody Ruby i jak wywołać metodę. Podobnie Ruby koncepcję bloku.

  • Blok składa się z wielu kodu.
  • Trzeba wziąć nazwę bloku.
  • Blok kodu jest zawsze zamknięty w nawiasach klamrowych {} wewnątrz.
  • Z którego zawsze zablokować wywołanie funkcji o tej samej nazwie. Oznacza to, że jeśli nazwa bloku dotestu,a następnie chcesz użyć do wywołania tej funkcji bloktestowy.
  • Można użyć instrukcjiyieldzadzwonić bloku.

gramatyka

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

Tutaj dowiesz się, jak korzystać z prostych instrukcjiyieldzadzwonić bloku. Dowiesz się również jak korzystać z instrukcjiyieldz parametrami do zwanym bloku. Na przykład, można zobaczyć dwa rodzaje instrukcjiyield.

yield

Spójrzmy na przykład oświadczenie wydajność:

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

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

Przykłady powyższych wyników operacyjnych, co następuje:

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

Można także przekazać oświadczenie o parametrach wydajności. Oto przykład:

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

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

Przykłady powyższych wyników operacyjnych, co następuje:

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

Tutaj, poyieldnastępuje parametry. Można nawet przekazać wiele parametrów. W bloku można umieścić zmienną pomiędzy dwoma pionowymi kreskami, aby zaakceptować parametry. Zatem w powyższym kodzie, wydajność 5 Oświadczenie jest przekazywana jako parametr do wartości 5 sztuk testowych.

Teraz spójrz na następujące oświadczenie:

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

Tutaj, wartość 5 otrzyma zmiennej i. Teraz stawiamy obserwować następujące oświadczenie:

puts "你在块 #{i} 内"

Stawia to oświadczenie wyjście jest:

你在块 5 内

Jeśli chcesz przekazać wiele parametrów, a następnie stwierdzeniewydajnośćjest w następujący sposób:

yield a, b

W tym czasie, jak pokazano w bloku:

test {|a, b| statement}

Parametry oddzielone przecinkami.

Bloki i metody

Widzieliście pomiędzy blokiem i sposobu, w jaki ze sobą powiązane. Zwykle stosowane oświadczenie wydajności wywołuje blok z metody o tej samej nazwie. W związku z tym, że kod jest w następujący sposób:

#!/usr/bin/ruby

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

Ten przykład jest najprostszym sposobem osiągnięcia bloku. Za pomocą zestawieniewydajnościwywołuje blok testowy.

Ale jeśli ostatni parametr przed zastosowaniem metody z & wtedy można metoda jest przekazywana do bloku i ten blok może być przypisany do ostatniego parametru. Jeśli * i & również pojawi się na liście parametrów i powinien być umieszczony na plecach.

#!/usr/bin/ruby

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

Przykłady powyższych wyników operacyjnych, co następuje:

Hello World!

BEGIN i END bloki

Każdy plik źródłowy Ruby może zadeklarować, kiedy bloki kodu (blok BEGIN), gdy plik zostanie załadowany do pracy, jak i po zakończeniu wykonywania programu bloki kodu do uruchomienia (blok końcowy).

#!/usr/bin/ruby

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

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

Program może zawierać wiele rozpoczynać i kończyć bloków. BEGIN blok jest wykonywany w kolejności, w jakiej występują. Bloki koniec, jak pojawiają się one w odwrotnej kolejności. Po wykonaniu powyższego programu daje następujące wyniki:

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