我来自 Java 背景,正如预期的那样,在理解 Scala 中使用的一些模式时遇到了问题(见下文)。每次我觉得自己对 Scala 模式或编程方法有了很好的理解时,就会弹出一些超出我编程理解范围的东西,让我回到学习模式。我想这是 scala 的魅力,它总是激励我不断学习:)
无论如何,我试图在 scala swing 中做一些示例编程......
val frame = new MainFrame {
title = "Electronic Classroom"
contents = new BorderPanel {
layout += new GridPanel(1, 2) {
contents += new ScrollPane(semesterList)
contents += new ScrollPane(courseList)
} -> West
}
menuBar = new MenuBar {
contents += new Menu("File") {
contents += new MenuItem("Login") {
action = Action("Login"){
login
user match{
case Some(inst:Instructor) => instructorMenu.enabled = true
enabled = false
case Some(_) => instructorMenu.enabled = false
enabled = false
case _ =>
}
}
}
contents += new Separator
contents += new MenuItem(Action("Exit")(sys.exit(0)))
}
}
contents += instructorMenu
}
size = new Dimension(1000, 600)
centerOnScreen
}
在这里,我们将值设置为 def 和 val,而在定义它们时不使用 def 或 val 关键字(如标题、大小、内容等),它现在看起来更像一个正文脚本,这与我们在 java 中所做的所有分配的方式不同等发生在方法体中。我想我在这里错过了一个大的设计模式
有人可以帮我解释一下 Scala 设计模式吗?