gpt4 book ai didi

multithreading - 如何在Scala中理解 “new {}”语法?

转载 作者:行者123 更新时间:2023-12-03 13:16:01 25 4
gpt4 key购买 nike

我正在学习Scala多线程编程,并通过引用教程来编写一个简单的程序:

object ThreadSleep extends App {
def thread(body: =>Unit): Thread = {
val t = new Thread {
override def run() = body
}
t.start()
t
}
val t = thread{println("New Therad")}
t.join
}

我不明白为什么要在 {}语句中使用 new Thread {}。我认为应该是 new Threadnew Thread()。我如何理解这种语法?

这个问题没有完全重复到 this one,因为我的问题的重点是“ new {}”的语法。

最佳答案

这是

new Thread() { ... } 

这称为 匿名类,其工作方式与在JAVA中类似:
您在这里使用覆盖的 run方法创建一个新线程。这很有用,因为仅使用一次就不必创建特殊类。
需要确认,但是您可以覆盖,添加,重新定义所需的每个方法或属性。

有关更多详细信息,请参见此处: https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html

关于multithreading - 如何在Scala中理解 “new {}”语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30096115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com