2011-03-11 6 views
7

खोज के माध्यम से, मैं जिस तरह से (एक तरह से या,) को समझने के लिए एक सूची के लिए एक सरणी परिवर्तित करने के लिए ऐसा करता है की तरह है:कहाँ सरणी अपने toList विधि प्राप्त

val l = Array(1, 2, 3).toList 

लेकिन न केवल मैं toList नहीं मिल सकता है ऐरे के एपीआई दस्तावेज़ों में विधि, मैं इसे किसी भी चीज में नहीं ढूंढ सकता जो कि पूर्वजों या एरे की विरासत वाली विशेषता है।

नए 2.9 एपीआई डॉक्स का उपयोग करना, मुझे लगता है कि toList इन बातों में मौजूद है:

ImmutableMapAdaptor ImmutableSetAdaptor IntMap List ListBuffer LongMap 
MutableList Option ParIterableLike PriorityQueue Stack StackProxy 
StreamIterator SynchronizedSet SynchronizedStack TraversableForwarder 
TraversableOnce TraversableOnceMethods TraversableProxyLike 

लेकिन मैं कैसे toList सरणी का हिस्सा बनने के लिए इन में से एक से हो जाता है नहीं समझ सकता। क्या कोई इसे समझा सकता है?

+0

यदि यह जावा की तरह कुछ है, तो यह ऐरे क्लास का एक क्लास तरीका है। –

+0

यह बात है, इसे देखकर नहीं: http://www.scala-lang.org/api/current/scala/Array.html – dino

+0

हां, मैंने यह भी देखा ... शायद खराब दस्तावेज़ ?? –

उत्तर

13

toList और इसी तरह के तरीकों देशी रूप जावा सरणियों पर नहीं मिला s.c.m.ArrayOps से आते हैं, सरणियों scala.Predef में निहित रूपांतरण के माध्यम से प्राप्त जो (हमारे पुराने पसंदीदा, नक्शे, flatMap, फ़िल्टर कर आदि सहित)। अंतर्निहित विधियों की तलाश करें जिनका नाम ArrayOps के साथ समाप्त होता है और आप देखेंगे कि जादू कहां से आता है।

+0

हू। और यह कि ArrayOps अभी तक प्रदर्शित नहीं हो रहा है क्योंकि टी से शुरू होने वाली विधियों के लिए उस इंडेक्स में सूची में शामिल है: http://www.scala-lang.org/archives/downloads/distrib/files/nightly/docs/library/index/index -t.html – dino

+1

'scalac -print' से * वास्तव में * जादू को देखने का प्रयास करें। – pedrofurla

+2

@dino 'क्योंकि रेफ इंडेक्स विरासत वाले सदस्यों को नहीं दिखाता है। toList ट्रांसवर्सेबलऑन में परिभाषित किया गया है। – pedrofurla

संबंधित मुद्दे