Vagrant.configure(" 2")做什么|配置| ......就红宝石代码来说,结束了吗?

时间:2016-09-18 02:39:42

标签: ruby vagrant

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end 

ruby​​代码看起来像

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

所以

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

它循环0到5,将每个项目分配给i,然后是" do ... end"会对我做点什么。

现在让我们看看

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

是不是意味着?

Vagrant.configure(VAGRANTFILE_API_VERSION)

类似
(0..5).each
  • 循环通过某些东西(以及它循环通过的东西?)
  • 返回循环中的每个项目,将每个项目分配给" config"
  • 然后" do | config |中的代码...结束"将对该项目做些什么" config"?

2 个答案:

答案 0 :(得分:2)

块与循环无关。这只是一个关闭。当方法调用yield时,将调用传递的块。块执行后,原始方法继续。

def understanding_blocks
  puts 1
  puts yield
  puts 3
end

如果你跑了:

understanding_blocks do
  2
end

你会看到

1 
2 
3

在Ruby中,所有方法都可以隐式地使用块,这就是我不必定义参数的原因。我可以拥有。您可以使用block_given?

测试是否为方法指定了块

答案 1 :(得分:1)

它将空块传递给Vagrant.configure所做的任何事情。没有效果,可以省略,因为它是多余的:

Vagrant.configure(VAGRANTFILE_API_VERSION)