一个很有意思的回答

  总体而言,如果我们能够分得清什么 last expression,我们就能推导出和编译器一样的返回类型结果。否则,我们应该显式地加上 return,这样既指定了实际返回类型,也指定了控制流上的返回点。