कोष्ठक क्यों?
यहाँ scala में पुस्तक प्रोग्रामिंग से उद्धरण है ।
इस उदाहरण से स्पष्ट एक और महत्वपूर्ण विचार आपको इस बात की जानकारी देगा कि स्केल में कोष्ठक के साथ सरणियों को क्यों एक्सेस किया जाता है। जावा की तुलना में स्काला के पास कम विशेष मामले हैं। सरणी बस किसी भी अन्य वर्ग की तरह स्काला में वर्गों के उदाहरण हैं। जब आप किसी चर पर एक या एक से अधिक मानों के आसपास कोष्ठक लागू करते हैं, तो स्केला कोड को उस चर पर लागू होने वाली विधि के आह्वान में बदल देगा। अतः नमस्कारस्ट्रीम (i) बधाई में बदल जाता है। इस प्रकार स्काला में एक एरे के तत्व को एक्सेस करना किसी भी अन्य की तरह एक तरीका है। यह सिद्धांत सरणियों तक सीमित नहीं है: कोष्ठक में कुछ तर्कों के लिए एक वस्तु के किसी भी आवेदन को एक आवेदन विधि कॉल में बदल दिया जाएगा। बेशक यह केवल तभी संकलित होगा जब उस प्रकार की वस्तु वास्तव में एक लागू पद्धति को परिभाषित करती है। तो यह कोई विशेष मामला नहीं है; यह एक सामान्य नियम है।
कार्यात्मक प्रोग्रामिंग शैली का उपयोग करके कुछ तत्व (इस मामले में पहला एलएम) कैसे खींचना है, इसके कुछ उदाहरण हैं।
// Create a multdimension Array
scala> val a = Array.ofDim[String](2, 3)
a: Array[Array[String]] = Array(Array(null, null, null), Array(null, null, null))
scala> a(0) = Array("1","2","3")
scala> a(1) = Array("4", "5", "6")
scala> a
Array[Array[String]] = Array(Array(1, 2, 3), Array(4, 5, 6))
// 1. paratheses
scala> a.map(_(0))
Array[String] = Array(1, 4)
// 2. apply
scala> a.map(_.apply(0))
Array[String] = Array(1, 4)
// 3. function literal
scala> a.map(a => a(0))
Array[String] = Array(1, 4)
// 4. lift
scala> a.map(_.lift(0))
Array[Option[String]] = Array(Some(1), Some(4))
// 5. head or last
scala> a.map(_.head)
Array[String] = Array(1, 4)