公告

本次更新:

公告样式,参考自 VuePress-Reco

本博客只技术分享!


Skip to content
本站总访问量
本站访客数 人次
标签
javascriptfacetestgopythonHTML前端CSSvitepress

reflection

那么为什么不通过将所有参数都定义为 interface 类型来得到真正灵活的函数呢?

  • 作为函数的使用者,使用 interface 将失去对类型安全的检查。如果你想传入 string 类型的 Foo.bar 但是传入的是 int 类型的 Foo.baz,编译器将无法通知你这个错误。你也搞不清楚函数允许传递什么类型的参数。知道一个函数接收什么类型,例如 UserService,是非常有用的。
  • 作为这样一个函数的作者,你必须检查传入的 所有 参数,并尝试断定参数类型以及如何处理它们。这是通过 反射 实现的。这种方式可能相当笨拙且难以阅读,而且一般性能比较差(因为程序必须在运行时执行检查)。

简而言之,除非真的需要否则不要使用反射。   

1

2

本站访客数 人次 本站总访问量