首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >=>、()=>和Unit=>之间的区别是什么

=>、()=>和Unit=>之间的区别是什么
EN

Stack Overflow用户
提问于 2010-12-28 10:14:59
回答 4查看 27.5K关注 0票数 156

我试图表示一个不带参数、不返回值的函数(如果您一定要知道,我正在用JavaScript模拟setTimeout函数)。

代码语言:javascript
复制
case class Scheduled(time : Int, callback :  => Unit)

不能编译,因为“` `val‘参数可能不是按名称调用的”

代码语言:javascript
复制
case class Scheduled(time : Int, callback :  () => Unit)  

编译,但必须奇怪地调用,而不是

代码语言:javascript
复制
Scheduled(40, { println("x") } )

我必须这么做

代码语言:javascript
复制
Scheduled(40, { () => println("x") } )      

同样有效的是

代码语言:javascript
复制
class Scheduled(time : Int, callback :  Unit => Unit)

而是以一种更不明智的方式调用的

代码语言:javascript
复制
 Scheduled(40, { x : Unit => println("x") } )

(类型为Unit的变量是什么?)当然,我想要的是一个构造函数,它可以像调用普通函数一样被调用:

代码语言:javascript
复制
 Scheduled(40, println("x") )

把奶瓶给宝宝!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4543228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档