Standard Library Functions: let, apply, run, with, also
কটলিনের স্ট্যান্ডার্ড লাইব্রেরিতে কিছু গুরুত্বপূর্ণ এক্সটেনশন ফাংশন রয়েছে, যা অবজেক্টগুলোর সাথে কাজ করার সময় কোডকে আরও সংক্ষিপ্ত, রিডেবল এবং কার্যকর করে। এই ফাংশনগুলো হলো: let, apply, run, with, এবং also। নিচে এই ফাংশনগুলো নিয়ে বিস্তারিত আলোচনা করা হলো:
১. let
let একটি উচ্চ-স্তরের ফাংশন যা একটি অবজেক্টকে প্যারামিটার হিসেবে গ্রহণ করে এবং একটি ব্লক হিসেবে কোড এক্সিকিউট করে। এটি সাধারণত null সেফটি নিশ্চিত করতে ব্যবহৃত হয়।
ব্যবহার:
fun main() {
val name: String? = "Alice"
name?.let {
println("Name is $it") // আউটপুট: Name is Alice
}
}
ব্যাখ্যা:
- এখানে
letব্লকটিnamenull না হলে এক্সিকিউট হবে।$itব্যবহার করেnameভ্যারিয়েবলের মান অ্যাক্সেস করা হয়েছে।
২. apply
apply ফাংশন একটি অবজেক্টকে প্যারামিটার হিসেবে গ্রহণ করে এবং একটি ব্লকে অবজেক্টের প্রপার্টি সেট করতে সাহায্য করে। এটি অবজেক্ট রিটার্ন করে, তাই এটি চেইনিংয়ের জন্য উপকারী।
ব্যবহার:
data class Person(var name: String = "", var age: Int = 0)
fun main() {
val person = Person().apply {
name = "Bob"
age = 25
}
println(person) // আউটপুট: Person(name=Bob, age=25)
}
ব্যাখ্যা:
- এখানে
applyব্যবহার করেPersonঅবজেক্ট তৈরি করা হয়েছে এবং একই সাথেnameএবংageপ্রপার্টি সেট করা হয়েছে।
৩. run
run ফাংশন একটি অবজেক্টকে প্যারামিটার হিসেবে গ্রহণ করে এবং একটি ব্লক হিসেবে কোড এক্সিকিউট করে। এটি ব্লকের শেষে একটি মান রিটার্ন করে, যা সাধারণত প্রোপার্টি সেট করার জন্য ব্যবহৃত হয়।
ব্যবহার:
fun main() {
val result = "Hello".run {
this.length // আউটপুট: 5
}
println(result) // আউটপুট: 5
}
ব্যাখ্যা:
- এখানে
runব্যবহার করে"Hello"স্ট্রিংটির দৈর্ঘ্য রিটার্ন করা হয়েছে।
৪. with
with ফাংশন একটি অবজেক্টকে প্যারামিটার হিসেবে গ্রহণ করে এবং একটি ব্লকে কোড এক্সিকিউট করে। এটি বিশেষভাবে যখন আপনি একটি অবজেক্টের প্রপার্টি বা মেথডের উপর একাধিক অপারেশন করতে চান তখন ব্যবহার করা হয়।
ব্যবহার:
data class Car(var model: String, var year: Int)
fun main() {
val car = Car("Toyota", 2020)
with(car) {
println("Model: $model")
println("Year: $year")
}
}
ব্যাখ্যা:
- এখানে
withব্যবহার করেcarঅবজেক্টেরmodelএবংyearপ্রোপার্টি একসাথে এক্সেস করা হয়েছে।
৫. also
also একটি উচ্চ-স্তরের ফাংশন যা একটি অবজেক্টকে প্যারামিটার হিসেবে গ্রহণ করে এবং একটি ব্লক হিসেবে কোড এক্সিকিউট করে। এটি মূলত অবজেক্টটি পরিবর্তন না করেই কিছু অতিরিক্ত কাজ করার জন্য ব্যবহৃত হয়। এটি অবজেক্টটি রিটার্ন করে।
ব্যবহার:
fun main() {
val numbers = mutableListOf(1, 2, 3)
numbers.also {
println("Original list: $it") // আউটপুট: Original list: [1, 2, 3]
}.add(4)
println(numbers) // আউটপুট: [1, 2, 3, 4]
}
ব্যাখ্যা:
- এখানে
alsoব্যবহার করেnumbersলিস্টের মূল মান প্রিন্ট করা হয়েছে এবং তারপর নতুন আইটেম যোগ করা হয়েছে।
সারাংশ
কটলিনের স্ট্যান্ডার্ড লাইব্রেরির let, apply, run, with, এবং also ফাংশনগুলো ব্যবহার করে আপনি কোডের রিডেবিলিটি এবং কার্যকারিতা বাড়াতে পারেন। এগুলো অবজেক্টগুলির সাথে কাজ করার সময় কোডকে আরো সংক্ষিপ্ত ও পরিষ্কার করে তোলে, এবং কাজের প্রক্রিয়াকে আরও সহজ করে।
Read more