will为推测性用法,will have done在此是对过去发生的事件进行推测。意思接近must,你可以按照must have done 表示对过去的推测去理解,只不过用will表示推测时,说话人的信心程度稍低于用must时。所以这个句子的意思是:你昨晚肯定听到这个消息了。 如果你把这个句子按照将来完成时去分析,逻辑就不通了。顺便说一下,表示对过去的推测,will远不如must常用,但偶尔还是会见到的。所以要了解will的这种用法。
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!