gpt4 book ai didi

Scala 和 Python 的通行证

转载 作者:行者123 更新时间:2023-12-04 17:37:32 31 4
gpt4 key购买 nike

我想知道,是否有相当于 python 的 pass 表达式?这个想法是编写没有实现的方法签名并编译它们只是为了对这些签名进行类型检查以进行某些库原型(prototype)设计。我能够使用这个来模拟这种行为:

def pass[A]:A = {throw new Exception("pass"); (new Object()).asInstanceOf[A]}

现在当我写:
def foo():Int = bar()
def bar() = pass[Int]

它可以工作(它可以进行类型检查,但运行时会爆炸,这很好),但我的实现感觉不对(例如 java.lang.Object() 的使用)。有没有更好的方法来模拟这种行为?

最佳答案

在 Scala 2.10 中,有 ??? method在预定义中。

scala> ???
scala.NotImplementedError: an implementation is missing
at scala.Predef$.$qmark$qmark$qmark(Predef.scala:252)
...

在 2.9 中,您可以像这样定义自己的:
def ???[A]:A = throw new Exception("not implemented")

如果您使用此版本而没有显式类型参数, A将被推断为 Nothing .

关于Scala 和 Python 的通行证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13763543/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com