[List] एक वर्ग और स्कैला में एक सूची के बीच अंतर



Answers

स्कैला में, एक सूची सेक से विरासत में प्राप्त होती है, लेकिन Product लागू करती है; List की उचित परिभाषा यहां दी गई है:

sealed abstract class List[+A] extends AbstractSeq[A] with Product with ...

[नोट: स्केल के बहुत शक्तिशाली संग्रह ढांचे के साथ फिट करने और उपयोग करने के लिए वास्तविक परिभाषा एक और अधिक जटिल है।]

Question

मैंने कई उदाहरणों में देखा है कि कभी-कभी एक सेक का उपयोग किया जा रहा है, जबकि दूसरी बार सूची है ...

क्या कोई स्केल प्रकार और जावा से आने वाली सूची के अलावा कोई अंतर है?




Seq एक विशेषता है जो List लागू करता है।

यदि आप अपने कंटेनर को Seq रूप में परिभाषित करते हैं, तो आप किसी भी कंटेनर का उपयोग कर सकते हैं जो Seq विशेषता लागू करता है।

scala> def sumUp(s: Seq[Int]): Int = { s.sum }
sumUp: (s: Seq[Int])Int

scala> sumUp(List(1,2,3))
res41: Int = 6

scala> sumUp(Vector(1,2,3))
res42: Int = 6

scala> sumUp(Seq(1,2,3))
res44: Int = 6

ध्यान दें कि

scala> val a = Seq(1,2,3)
a: Seq[Int] = List(1, 2, 3)

सिर्फ इसके लिए एक छोटा सा हाथ है:

scala> val a: Seq[Int] = List(1,2,3)
a: Seq[Int] = List(1, 2, 3)

यदि कंटेनर प्रकार निर्दिष्ट नहीं है, अंतर्निहित डेटा संरचना List डिफ़ॉल्ट है।




Links