我想在对象上执行'foreach'时,对最后一个循环迭代做一些不同的事情.我正在使用Ruby,但C#,Java等也是如此.
list = ['A','B','C']
list.each{|i|
puts "Looping: "+i # if not last loop iteration
puts "Last one: "+i # if last loop iteration
}
Run Code Online (Sandbox Code Playgroud)
所需的输出相当于:
Looping: 'A'
Looping: 'B'
Last one: 'C'
Run Code Online (Sandbox Code Playgroud)
显而易见的解决方法是使用代码将代码迁移到for循环'for i in 1..list.length'
,但for each解决方案感觉更优雅.在循环期间编写特殊情况的最优雅方法是什么?可以用foreach完成吗?
我正在使用以下代码在java中打开http连接:
URL url = new URL("http://stackoverflow.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("GET");
conn.setRequestProperty("Host", "Test:8080");
conn.getOutputStream();
Run Code Online (Sandbox Code Playgroud)
但是,调用conn.setRequestProperty("Host","Test:8080")似乎无效,无论我调用方法的顺序如何,主机都重置为目标服务器.有没有办法在不使用其他库的情况下覆盖Host头?
TIA Matt