我开始学习 Ruby 并尝试理解代码块,因为我是一名具有 C# 和 Java 背景的程序员。我想我理解传递块和使用产量的概念。但是,根据我的背景,块在什么情况下有用(我以前从未使用过代码块/clojures,所以我不明白为什么它们如此有用)?我想知道的另一件事是:如果我开始处理现有项目,并且已经开发了一些 API 等,我怎么知道是否应该将块传递给某个 API 方法?
提前致谢!
如果您在 C# 中经常使用 lambda,那么块可能很熟悉,因为它们都是可以传递的匿名代码块。
在惯用的 Ruby 中一直使用块。它们用于代替“for”循环,
1.upto(10) do |i|
puts i
end
或遍历集合,
["New York", "Chicago", "Los Angeles"].each do |city|
puts "I wish I wasn't in #{city}!"
end
或以类似于 C# 'using' 语句的方式处理文件。
File.open("test-file", "w") do |f|
f.puts "Hello, world!"
end
通常 API 文档会明确说明何时需要一个块并提供示例。我觉得不用太担心。