Function 从Scala中的其他类导入函数
比如说我有Function 从Scala中的其他类导入函数,function,class,scala,import,Function,Class,Scala,Import,比如说我有 class foo{ def bar = 7 } class qaz{ //Here I want to have something like: val foobar = bar //What I don't want to have is val foobar = (new foo).bar } 如何实现这一点?您可以使用foo的伴生对象来定义bar 然后,您只需将其导入qaz: // in foo.scala object foo { def bar
class foo{
def bar = 7
}
class qaz{
//Here I want to have something like: val foobar = bar
//What I don't want to have is val foobar = (new foo).bar
}
如何实现这一点?您可以使用
foo
的伴生对象来定义bar
然后,您只需将其导入qaz
:
// in foo.scala
object foo {
def bar = 7
}
class foo {
// whatever for foo class
}
// in qaz.scala
import mypackage.foo.bar
class qaz {
val foobar = bar // it works!
}
有两种方法可以实现这一点:
class foo {
// whatever for foo class
}
//Companion Object
object foo {
def bar = 7
}
class qaz {
val foobar = bar
}
通过创建一个case类而不是普通类,可以为您创建大量样板代码,其中之一是生成apply方法,因此您不需要使用new关键字来创建该类的新实例
case class foo{
def bar = 7
}
class qaz{
val foobar = bar
}
这两种方法都是语法上的甜点,但在后面做同样的事情,也就是说,在伴生对象中使用apply函数。
请尝试获取更多信息。要使此功能发挥作用,foo需要成为foo.scala的伴生对象?我还可以有一个伴随类吗?具体指的是哪个部分?
case class foo{…}
(在第二种情况下,除非使用非常旧的Scala版本)和val foobar=bar
(在这两种情况下)。