重构时是否应删除F#类型的注释?

Geo*_*off 9 refactoring f# type-inference

如果我在任何地方使用函数之前编写函数,我发现在其参数中添加类型注释很有用.这意味着我可以自动完成其值,并且(特别是作为F#newbie)不会被意外的类型推断混淆.

但是,一旦函数完成,我很想删除参数的类型注释,因为它们很难看.这听起来像是一件合理的事吗?

我希望它可能取决于我所说的功能.例如,它可能对私有函数有意义,但对公共函数则没有意义.

kvb*_*kvb 6

我认为这取决于很多因素.这里有一些赞成留下注释的论据:

  1. 类型注释可以说是编译器检查文档的一种形式.
  2. 没有充分理由不要修改工作代码.
  3. 编译时可能需要某些类型注释,在这种情况下,将所有类型注释留下而不是仅删除不必要的注释以保持一致性是有意义的.

但是,另一方面,还有一些令人信服的理由将其删除:

  1. 编译器实际上可以推断出更通用的类型,在这种情况下,您可以在更广泛的上下文中重用函数.
  2. 您的代码将更加简洁,您可能会发现它更具可读性.