首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ceylon高阶函数

Ceylon高阶函数
EN

Stack Overflow用户
提问于 2016-12-29 08:53:12
回答 0查看 135关注 0票数 0

我有代码:

代码语言:javascript
复制
shared Integer getInt() {
    return 42;
}

shared Integer() i1() {
    return getInt;
}

shared Callable<Integer,Nothing> i2() {
    return getInt;
}

shared Callable<Integer,[]> i3() {
    return getInt;
}

void run() {
    // OK
    i1()();
    // Illegal `[] is not assignable to Nothing`
    i2()();
    // OK
    i3()();
}

不过,我不确定为什么编译器可以使用"i2“声明。Nothing是everything的子类型,因此是空元组的子类型,所以我可以在某种程度上理解为什么我可以进行声明。但是一旦我这样做了,我似乎不可能正常地调用"i2“,因为调用它时没有参数,空元组,意味着用它想要的超类型来调用它,而锡兰拒绝了它。那么,是否可以调用从i2返回的getInt呢?

EN

回答

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

https://stackoverflow.com/questions/41371784

复制
相关文章

相似问题

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