বন্ধনী কেন?
স্ক্যালায় বইয়ের প্রোগ্রামিংয়ের উদ্ধৃতি এখানে ।
এই উদাহরণ দ্বারা চিত্রিত আরেকটি গুরুত্বপূর্ণ ধারণা আপনাকে স্ক্যালায় বন্ধনীর সাহায্যে অ্যারে কেন অ্যাক্সেস করা হয় তা অন্তর্দৃষ্টি দেবে। স্কালায় জাভার চেয়ে কম বিশেষ মামলা রয়েছে। অ্যারেগুলি কেবল স্কালার অন্যান্য শ্রেণীর মতো ক্লাসের উদাহরণ। আপনি যখন ভেরিয়েবলের এক বা একাধিক মানের চারপাশে প্রথম বন্ধনী প্রয়োগ করেন, স্কালা কোডটি সেই ভেরিয়েবলের উপরে প্রয়োগ নামের একটি পদ্ধতির অনুরোধে রূপান্তরিত করে। সুতরাং গ্রিটিস্ট্রিংস (আই) গ্রেটসট্রিংস এপ্লাই করে app সুতরাং স্কেলে একটি অ্যারের উপাদান অ্যাক্সেস করা সহজভাবে অন্য যেকোন পদ্ধতির কল। এই নীতিটি অ্যারেগুলিতেই সীমাবদ্ধ নয়: বন্ধনীগুলিতে কিছু আর্গুমেন্টে কোনও বস্তুর কোনও প্রয়োগ প্রয়োগ পদ্ধতি কলে রূপান্তরিত হবে। অবশ্যই এটি কেবল তখনই সংকলন করবে যদি সেই ধরণের অবজেক্টটি আসলে প্রয়োগের পদ্ধতিটি নির্ধারণ করে। সুতরাং এটি কোনও বিশেষ ক্ষেত্রে নয়; এটি একটি সাধারণ নিয়ম।
ফাংশনাল প্রোগ্রামিং স্টাইল ব্যবহার করে নির্দিষ্ট উপাদান (এই ক্ষেত্রে প্রথম এলেম) কীভাবে টানতে হবে তার কয়েকটি উদাহরণ এখানে রয়েছে।
// 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)