下面的代码在scala shell中不起作用,但是在IDE中起作用,有人可以在scala-shell中使用对象类型作为方法参数吗?
scala> object A {
| }
defined object A
scala> def f(a:A) :Unit = {
| }
<console>:63: error: not found: type A
def f(a:A) :Unit = {
答案 0 :(得分:1)
您可以像这样使用Object.type:
scala> object A {}
defined object A
scala> def f(a: A.type) = println("hello world")
f: (a: A.type)Unit
scala> f(A)
hello world
答案 1 :(得分:0)
只需添加特征A:
trait A
object A extends A
def f(a:A) :Unit = { }
答案 2 :(得分:0)
在IDE中工作是什么意思?我创建了一个项目,其中有一个文件juri
,其内容为:
HelloWorld1
编译时出现以下错误:
object HelloWorld1 extends App {
override def main(args: Array[String]): Unit = {
object A {
}
def f(a:A) :Unit = {}
}
}
如以上两个答案所述,您可以执行以下操作:
HelloWorld1.scala:8:13
not found: type A
def f(a:A) :Unit = {}
或定义特征而不是对象:
def f(a:A.type) :Unit = {}