स्काला में एक अपरिवर्तनीय सूची बनाने के कई तरीके हैं (नीचे दिए गए उदाहरण कोड देखें)। आप एक उत्परिवर्ती ListBuffer का उपयोग कर सकते हैं, एक var
सूची बना सकते हैं और इसे संशोधित कर सकते हैं, एक पूंछ पुनरावर्ती विधि का उपयोग कर सकते हैं , और शायद अन्य जिनके बारे में मुझे जानकारी नहीं है।
सहज रूप से, मैं ListBuffer का उपयोग करता हूं, लेकिन मेरे पास ऐसा करने का एक अच्छा कारण नहीं है। क्या एक सूची बनाने के लिए एक पसंदीदा या मुहावरेदार तरीका है, या क्या ऐसी परिस्थितियां हैं जो एक विधि से दूसरे के लिए सर्वोत्तम हैं?
import scala.collection.mutable.ListBuffer
// THESE are all the same as: 0 to 3 toList.
def listTestA() ={
var list:List[Int] = Nil
for(i <- 0 to 3)
list = list ::: List(i)
list
}
def listTestB() ={
val list = new ListBuffer[Int]()
for (i <- 0 to 3)
list += i
list.toList
}
def listTestC() ={
def _add(l:List[Int], i:Int):List[Int] = i match {
case 3 => l ::: List(3)
case _ => _add(l ::: List(i), i +1)
}
_add(Nil, 0)
}
What you DON'T do is use a List and append to it
क्या इसलिए कि एक नई सूची बन जाती है? जबकि, प्रीपेन्ड ऑपरेशन का उपयोग करने से नई सूची नहीं बनेगी?