有没有一种方法可以在不命名参数 _name
或在实例化之前重新绑定(bind)参数的情况下引用隐藏参数?
trait Stuff {
def name: String
}
...
def create (name: String): Stuff = new Stuff {
// this doesn't work since it references itself
// how do I make the rhs refer to the parameter,
// not the method on the class?
override def name = name
}
我宁愿保持参数的名称相同,因为调用者可能会使用命名参数。重新绑定(bind)会起作用,但如果有很多参数,那将是很多重复。
最佳答案
这不是问题的直接解决方案,但这可能是在 Scala 中创建对象的更典型的模式:
class NamedStuff(name: String) extends Stuff
def create(name: String): Stuff = new NamedStuff(name)
请注意,NamedStuff
的name
参数会自动覆盖Stuff
中的name
方法。
关于scala - 有没有办法引用被内联类字段遮蔽的函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68212305/