【问题标题】:Ceylon not implemented error锡兰未实施错误
【发布时间】:2014-10-25 13:29:11
【问题描述】:

什么是 Ceylon 的成语表示功能未实现? 我经常想看看设计是否会在遇到实现所有功能的麻烦之前进行类型检查。据推测,这意味着让主体抛出一个错误,其类型为Nothing,并且可以分配给任何函数。当实现无关紧要时,这对于共享示例代码也很有用。

看起来有些人像这样使用 Java 中的 UnsupportedOperationException:

Integer add(Integer a, Integer b) {throw UnsupportedOperationException();}

但这太冗长了,无法附加到一堆类方法上。我正在寻找类似于 Scala 的可爱名称 ??? 的东西,例如:

def add(a: Int, b: Int): Int = ???

【问题讨论】:

    标签: notimplementedexception ceylon unsupportedoperation


    【解决方案1】:

    实际上,nothing 是您可以调用的内置顶级 getter:

    Integer add(Integer a, Integer b) => nothing;
    

    它可能看起来像一个正在返回的对象,但实际上一旦到达它就会抛出一个运行时异常。

    【讨论】:

    • 是的,这很好,因为它会在评估时抛出异常,并且 IDE 会在其上发出警告以提醒以后实施它。
    • 我只想补充一点,nothing 根本不是原始值:它是一个正常值,implemented in regular Ceylon,您也可以自己编写。 (不过,type Nothing 是“原始的”——该语言中唯一不能用 Ceylon 表达的类型。)
    • @lucas.werkmeister 谢谢,我编辑了我的答案以澄清这一点。
    猜你喜欢
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多