1
我想在scala中定义一个(或两个,取决于你如何看待它)运算符。在构造函数中插入opertors来设置字段
就像这样:_ ==> _ | _下划线代表参数。 棘手的部分是,操作符应该用在构造函数中来设置对象的字段。
我写了一个小例子,使用implicits和一个包装对象。但是这种方法显然不起作用。 我不知道,我可以如何设置当前对象的字段。
在这个例子中,类型B中的每个创建对象都应该将其字段设置为“B”,44和“foo”。 “B”==> 44 |的结果“foo”应该与this.a =“B”相同; this.b = 44; this.c = foo。 有没有办法做到这一点?
谢谢!
abstract class Top {
var a = "a"
var b = 3
var c = "c"
implicit def js2WJ(js: String) : Wrapper = {
new Wrapper(js)
}
}
case class B() extends Top
{
"B" ==> 44 | "foo"
}
class Wrapper(js: String)
{
var ju : Option[Int] = None
var cs : Option[String] = None
def ==>(j: Int): Wrapper = {
ju = Some(j)
this
}
def | (cs: String) =
{
this.cs = Some(cs)
}
}
是的!看起来像这将适用于我的情况:)谢谢! – schlicht