在 Scala 中是否可以指定匿名函数的返回类型?
我知道您可以创建一个匿名函数,并让编译器推断其返回类型:
val x = () => { System.currentTimeMillis }
只是为了静态类型,是否也可以指定其返回类型?我认为这会让事情变得更加清晰。
I know you can create an anonymous function, and have the compiler infer its return type:
val x = () => { System.currentTimeMillis }
Just for static typing's sake, is it possible to specify its return type as well? I think it would make things a lot clearer.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在我看来,如果您想让事情变得更清楚,最好通过在其中添加类型注释而不是函数的结果来记录对标识符 x 的期望。
然后编译器将确保右侧的函数满足该期望。
In my opinion if you're trying to make things more clear it is better to document the expectation on the identifier x by adding a type annotation there rather than the result of the function.
Then the compiler will ensure that the function on the right hand side meets that expectation.
Fabian 给出了简单的方法,但如果您喜欢对糖进行微观管理,还可以使用其他一些方法,包括:
或
甚至,
因为在大多数情况下,如果它从 Function 派生出来,没有什么区别,只有它是否有应用。
Fabian gave the straightforward way, but some other ways if you like micromanaging sugar include:
or
or even
since in most situations it makes no difference if it descends from Function, only whether it has an apply.