Collectionها؛ لیست، ست و مپ مثل آدمهای منظم
وقتی دادهها زیاد میشن، دیگه با چندتا متغیر نمیشه قایق رو جلو برد.
List و MutableList
`List` فقط خواندنیه؛ `MutableList` قابل تغییره. این تفاوت مهمه: یکی vitrine است، یکی انبار که میتونی جنس کم و زیاد کنی.
مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامهنویسی با نگاه کردن یاد گرفته نمیشود، با خراب کردن و درست کردن جا میافتد.
fun main() {
val languages = listOf("Kotlin", "Java", "Python")
println(languages[0])
val tasks = mutableListOf("درس", "تمرین")
tasks.add("پروژه")
println(tasks)
}
Kotlin [درس, تمرین, پروژه]
Set برای بدون تکراریها
`Set` اجازه نمیده مقدار تکراری نگه داری. مثل نگهبان باشگاهه؛ کارت تکراری ببینه راه نمیده.
مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامهنویسی با نگاه کردن یاد گرفته نمیشود، با خراب کردن و درست کردن جا میافتد.
val tags = setOf("android", "kotlin", "android")
println(tags) // [android, kotlin]
[android, kotlin]
Map برای کلید و مقدار
`Map` یعنی هر چیز با کلید خودش پیدا میشه. برای تنظیمات، پروفایل، دیکشنری و دادههای ساختارمند خیلی کاربردیه.
مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامهنویسی با نگاه کردن یاد گرفته نمیشود، با خراب کردن و درست کردن جا میافتد.
val user = mapOf(
"name" to "نیما",
"role" to "developer"
)
println(user["name"])
نیما
map، filter و forEach
این سهتا باعث میشن با مجموعهها حرفهای کار کنی. بهجای حلقههای شلوغ، داده رو مثل خط تولید مرتب پردازش میکنی.
مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامهنویسی با نگاه کردن یاد گرفته نمیشود، با خراب کردن و درست کردن جا میافتد.
val numbers = listOf(1, 2, 3, 4, 5)
val evenSquares = numbers
.filter { it % 2 == 0 }
.map { it * it }
println(evenSquares)
[4, 16]
نتیجه این درس 🎯
Collectionها قلب کار با دادهاند. لیست، ست، مپ و عملیات filter/map باعث میشوند به جای حلقههای شلوغ، داده را مثل آدم مرتب پردازش کنی.
تمرین! 🧠
لیستی از قیمتها بساز، فقط قیمتهای بالای ۱۰۰ را نگه دار و ۱۰ درصد تخفیف روی آنها اعمال کن.
fun main() {
val prices = listOf(80, 120, 300, 50, 180)
val discounted = prices
.filter { it > 100 }
.map { it * 0.9 }
println(discounted)
}
[108.0, 270.0, 162.0]