定义数组并使用block迭代:
animals = %w(ant bee cat dog elk)
animals.each{|animal|puts animal}
ant
bee
cat
dog
elk
使用lambdm定义block为proc对象并使用call调用执行:
def n_times(thing)
return lambda{|n| thing*n}
end
p1 = n_times(23)
puts p1.call(3)
puts p1.call(4)
p2 = n_times("Hello ")
puts p2.call(3)
输出:
69
92
Hello Hello Hello
使用Net::HTTP可以方便发送http请求和接受相应,支持头设置和Get,Post,Delete,Put子类的对应操作
uri = URI('http://example.com/cached_response')
file = File.stat 'cached_response'
req = Net::HTTP::Get.new(uri.request_uri)
req['If-Modified-Since'] = file.mtime.rfc2822
res = Net::HTTP.start(uri.hostname, uri.port) {|http|
http.request(req)
}
open 'cached_response', 'w' do |io|
io.write res.body
end if res.is_a?(Net::HTTPSuccess)
通过 req['If-Modified-Since'] = 。。。设置HTTP头。
如果需要发送Delete操作只需要将 Net::HTTP::Get 换为 Net::Http::Delete 即可,Post和Put类似。