Scala中Singleton的含义

时间:2018-05-26 11:54:07

标签: scala

我知道单例是一个只有一个实例的类,它提供了一个全局访问点"。但是scala中的Singleton意味着什么?Singleton对象如何应用概念scala中的singleton?Singleton Object / Object在scala中创建了什么?

2 个答案:

答案 0 :(得分:1)

  

对象是一个只有一个实例的类。它被引用时会被懒惰地创建,就像懒惰的val。

https://docs.scala-lang.org/tour/singleton-objects.html

所以每当你做

StreamWriter wr = new StreamWriter($"C:\\Users\\admin\\Downloads\\Extension Report Time {hour}-{minute}-{second}.xls");

编译器将创建一个类和该类的单个实例,它被懒惰地初始化。

这使object SomeObject 成为Java术语中的单例(保证类的单个实例)

答案 1 :(得分:0)

对象是仅具有该类的一个实例的类。每当引用对象时都会创建此对象,否则不会创建该对象。它恰好表现为惰性评估。

以下是带有方法的对象的示例:

function getSuccessOutput() {
$.ajax({
    method: 'get',
    url:'test.php',
    complete: function (response) {
    console.log(response.responseText);
        $('#output').html(response.responseText);
    },
    error: function () {
        $('#output').html('Bummer: there was an error!');
    },
});
return false;

info 方法可以在程序的任何位置使用。

让我们看看如何在程序中使用 info 方法。

package logging

object Logger {
def info(message: String): Unit = println(s"INFO: $message")
}