在scala-swing中,我可以编写以下简单代码:
object HelloWorld2 extends SimpleSwingApplication {
val top=new MainFrame()
top.title="Hello, World!"
//val a=new Button("a")
top.contents=new Button("a")
}
工作正常
但作为文档https://www.scala-lang.org/api/2.9.1/scala/swing/package.html
MainFrame中内容的类型是Seq [Component]
按钮的类型是按钮
那我为什么写
top.contents=new Button("a")
没有错误吗?谢谢!
答案 0 :(得分:0)
请注意,根据API docs
,以下两个方法签名def contents: Seq[Component]
def contents_=(c: Component): Unit
赋值语法
top.contents = new Button("a")
实际上使用了变数_=
方法
def contents_=(c: Component): Unit
所述
对于mutator,方法的名称应为 附加“ _ =”的属性。只要有一个对应的访问器 该特定的属性名称是在封闭类型上定义的, 约定将启用呼叫站点突变语法,该语法可反映 分配。