作为一种习惯,我会尝试定期阅读一些其他人的源代码并在要点中对其进行评论。现在我正在阅读 sinatra 的基础应用程序并发现了一段有趣的代码(这是他们的 Request 类的一部分)
def accept
@env['sinatra.accept'] ||= begin
entries = @env['HTTP_ACCEPT'].to_s.split(',')
entries.map { |e| accept_entry(e) }.sort_by(&:last).map(&:first)
end
end
我不明白的部分是 &:last 和 &:first 在做什么?!?它看起来像疯了!