go - 如何减少返回类型的冗长
问题描述
我有这个:
type ret = func(http.ResponseWriter, martini.Params, *http.Request);
func VerifyParam(paramName string, validators... func()) ret {
return func(res http.ResponseWriter, params martini.Params, req *http.Request) {
// ...
}
}
即使返回类型就在那里,我也必须声明返回类型,这太糟糕了,有没有办法不必重复返回类型声明?
解决方案
你说你不想“用类型声明重复自己”,但后面的部分return
不是类型声明;它是函数文字的开始。
如果您想要一个函数字面量(或在包级别定义的函数或方法),您必须指定参数、它们的类型和返回类型。没有办法解决这个问题。
如果您可以将函数表示为计算的结果,那么您可以依赖类型推断。例如,如果您有一个返回 martini http 处理程序的函数,那么您可以return myMartiniHandler(123)
不使用任何类型。不过,这将是一个例外情况,因为大多数处理程序不只是重用一些现有代码。
推荐阅读
- reactjs - 为什么 React 需要一个封闭标签来返回多个兄弟元素?
- node.js - 访问用户 jenkins 发起的 pm2 状态
- angular - 在 subject.next 之后,角度 observable 不加载服务
- spring-boot - springboot的JDBCTemplate如何使用回滚
- python - pyqtgraph 的 OpenGL 导入失败
- javascript - CSS 隐藏属性的文本内容
- visual-studio-code - 为什么我的 VSCode 终端不会改变样式?
- jquery - 使用 jQuery 计算 2 个日期输入 datetimepicker 的日差?
- weka - 在 WEKA,J48 中,将 minNumObj 设置为 1 有意义吗?
- mysql - 索引是 SQL 中的约束吗?