2016-09-18 4 views
1
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end 

ルビーコードそれは私に各項目を割り当て、0〜5をループし、 "...やるエンド" 内の、その後のコードのでVagrant.configure( "2")は何をするか| config | ...ルビコードの点ではまさに終わりですか?

(0..5).each do |i| 
    puts "Value of local variable is #{i}" 
end 

(0..5).each do |i| ... end 

たいlookes私と何かをしなさい。

今それが意味するのでしょうか?さんは

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end. 

を見てみましょうか

Vagrant.configure(VAGRANTFILE_API_VERSION) 

(0..5).each 
  • 何かをループと同様である(とそれが貫通ループ?)
  • 戻りループ内の各項目、各項目を割り当てる "コンフィグ"
  • "do | config | ... end"内のコードは "config"という項目について何かしますか?

答えて

2

ブロックはループに縛られていません。それは単なる閉鎖です。メソッドがyieldを呼び出すと、渡されたブロックが呼び出されます。ブロックが実行された後、元のメソッドが続行されます。

def understanding_blocks 
    puts 1 
    puts yield 
    puts 3 
end 

あなたが実行した場合:

understanding_blocks do 
    2 
end 

をあなたはRubyで

1 
2 
3 

が表示されます、すべてのメソッドは、暗黙のうちに、私は引数を定義する必要がなかった理由であるブロックを、取ることができます。私は持っている可能性があります。 block_given?

+0

So Vagrant.configure(VAGRANTFILE_API_VERSION)はメソッドであり、doブロックをパラメータとして受け取りますか? – searain

+0

(0..5)と同じように、各ブロックはパラメータをとるイテレータメソッドです。 ありがとう! – searain

1

Vagrant.configureには空のブロックが渡されます。それは冗長なのでそこには効果がありません、それは省略することができ、次のようになります。

Vagrant.configure(VAGRANTFILE_API_VERSION) 
関連する問題