Ruby do-block和RestClient

bhh*_*988 0 ruby

我是Ruby的新手.

我注意到,如果我这样做(假设已经定义了"请求"):

RestClient::Request.execute(request) do |response|
  print response
end
Run Code Online (Sandbox Code Playgroud)

然后回复是空的.但如果我这样做

response = RestClient::Request.execute(request)
print response
Run Code Online (Sandbox Code Playgroud)

然后回应有一些东西.

第二个工作原理和第一个工作原理的原因是什么?

the*_*Man 5

文件RestClient::Request.execute不显示它需要一个块:

def self.execute(args)
        new(args).execute
end

它只返回通过调用executeRestClient的匿名实例返回的值.