我是一名java程序员并学习Scalanow。在Java中,单个对象意味着整个JVM中只能存在此类型对象中的一个。但是在Scala中我怎么能在相同的类型下创建两个单例对象,例如我可以在相同的类类型Seq中创建两个单例对象:
val s1 = Seq("aa","bb")
val s2 = Seq("aa","bb","cc")
答案 0 :(得分:2)
这有点不同。 阅读文档:http://docs.scala-lang.org/tutorials/tour/singleton-objects.html。
在您的示例中,您将创建Seq类型的值。它不是单身人士! 以下是单身人士的例子:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
using namespace std;
struct Honda {
int id;
int year;
string model;
string trim;
string color;
int engine;
};
const int SIZE = 10;
void openInputFile(ifstream &, string);
int main()
{
Honda arr[SIZE];
ifstream inFile;
string inFileName = "C:\\Users\\Michael\\Documents\\inventory.txt";
openInputFile(inFile, inFileName);
for (int count = 0; count < SIZE; count++) {
inFile >> arr[count].id >> arr[count].year >> arr[count].trim >> arr[count].color >> arr[count].engine;
}
inFile.close();
return 0;
}
void openInputFile(ifstream &inFile, string inFileName)
{
//Open the file
inFile.open(inFileName);
//Input validation
if (!inFile)
{
cout << "Error to open file." << endl;
cout << endl;
return;
}
}
这是一个重复的问题。
答案 1 :(得分:0)
在阅读@Pavel指出的文档时,值得指出:
val s1 = Seq("aa","bb")
没有创建任何单身人士。而是在apply
的抽象超类上调用Seq
方法,返回instance
。