स्काला में :: और ::: के बीच क्या अंतर है


83
val list1 = List(1,2)
val list2 = List(3,4)

फिर

list1::list2 returns:

List[Any] = List(List(1, 2), 3, 4)

list1:::list2 returns:

List[Int] = List(1, 2, 3, 4)

मैंने देखा कि पुस्तक लिखती है कि जब इसका उपयोग किया जाए तो ::यह भी परिणाम देता है List[Int] = List(1, 2, 3, 4)। मेरा स्काला संस्करण 2.9 है।

जवाबों:


118

::किसी एकल आइटम को प्रस्तुत करता है जबकि :::पूरी सूची को प्रस्तुत करता है। इसलिए, यदि आप Listसामने रखते हैं तो ::इसे एक आइटम के रूप में लिया जाता है, जिसके परिणामस्वरूप एक नेस्टेड संरचना होती है।


प्रदर्शन के कारण, के बीच अंतर है ::और :::?
null

2
प्रदर्शन को प्रस्तुत करने के तत्वों की संख्या होने के O(n)साथ होना चाहिए n
देबिल्स्की

अगर मैं गलत हूं तो मुझे सुधारें, लेकिन क्या यह ऑपरेशन एक प्रीपेन्ड के बजाय एक परिशिष्ट नहीं है?

1
एक उदाहरण यह समझने में बहुत आसान बना देगा
तकनीकी

20

सामान्य रूप में:

  • :: - सूची की शुरुआत में एक तत्व जोड़ता है और जोड़े गए तत्व के साथ एक सूची देता है
  • ::: - दो सूचियों को समाप्‍त करता है और सम्‍मिलित सूची को लौटाता है

उदाहरण के लिए:

1 :: List(2, 3)             will return     List(1, 2, 3)
List(1, 2) ::: List(3, 4)   will return     List(1, 2, 3, 4)

आपके विशिष्ट प्रश्न में, उपयोग करने ::से सूची ( नेस्टेड सूची ) में सूची बन जाएगी इसलिए मेरा मानना ​​है कि आप उपयोग करना पसंद करते हैं :::

संदर्भ: वर्ग सूची आधिकारिक साइट int

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.