0Pricing
Kotlin Academy · บทเรียน

it: พารามิเตอร์โดยนัย

ใช้พารามิเตอร์ it โดยนัยใน lambda ที่มีพารามิเตอร์เดียว

it: พารามิเตอร์โดยนัย เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

it โดยนัย

เมื่อแลมบ์ดามีพารามิเตอร์เพียงหนึ่งตัว คุณสามารถละเว้นการประกาศพารามิเตอร์นั้นและอ้างอิงด้วย it ได้ ช่วยลดการพิมพ์ในสายการประมวลผลสั้น ๆ

it ใน forEach

ตัวอย่างคลาสสิกคือ forEach จะส่งสมาชิกแต่ละตัวมาเป็น it

fun main() {
    listOf(1, 2, 3).forEach { println(it) }
}

it ใน map

แปลงสมาชิกแต่ละตัวโดยใช้ it เป็นอินพุต

fun main() {
    val doubled = listOf(1, 2, 3).map { it * 2 }
    println(doubled) // [2, 4, 6]
}

it ใน filter

filter จะเก็บสมาชิกที่แลมบ์ดาคืนค่าเป็น true เท่านั้น it หมายถึงสมาชิกปัจจุบัน

fun main() {
    val evens = listOf(1, 2, 3, 4, 5).filter { it % 2 == 0 }
    println(evens) // [2, 4]
}

กรณีที่ไม่ควรใช้ it

หากเนื้อหาของแลมบ์ดาไม่ใช่การทำงานง่าย ๆ ให้ตั้งชื่อพารามิเตอร์อย่างชัดเจน การตั้งชื่อช่วยให้อ่านเข้าใจได้ดีกว่าการใช้ it แบบย่อ

fun main() {
    val users = listOf("alice", "bob")
    // OK
    users.forEach { println(it) }
    // Clearer with a name when body is bigger
    users.forEach { name ->
        println("User: $name length=${name.length}")
    }
}

it ในแลมบ์ดาซ้อนกัน

โปรดระวังแลมบ์ดาที่ซ้อนกัน แต่ละ it จะอ้างอิงกับแลมบ์ดาด้านในสุด การตั้งชื่อพารามิเตอร์จะช่วยหลีกเลี่ยงความกำกวม

fun main() {
    val nested = listOf(listOf(1, 2), listOf(3, 4))
    // Both lambdas use it — confusing!
    nested.forEach { outer ->
        outer.forEach { inner ->
            println("$outer -> $inner")
        }
    }
}

it กับเมธอดสตริง

รูปแบบที่พบบ่อยคือการกรองหรือแปลงสตริงโดยใช้ it

fun main() {
    val names = listOf("Alice", "bob", "Charlie")
    val upper = names.map { it.uppercase() }
    println(upper)
}

it กับพร็อพเพอร์ตี

it.property เป็นวิธีที่กระชับในการเข้าถึงฟิลด์เมื่อเชื่อมการดำเนินการหลายรายการ

data class Person(val name: String, val age: Int)
fun main() {
    val people = listOf(Person("Ana", 20), Person("Ben", 35))
    val names = people.map { it.name }
    println(names) // [Ana, Ben]
}

เพรดิเคตด้วย it

เพรดิเคต ซึ่งก็คือแลมบ์ดาที่คืนค่าบูลีน จะอ่านเข้าใจได้เป็นธรรมชาติเมื่อใช้ร่วมกับ it

fun main() {
    val nums = listOf(1, 4, 7, 9)
    println(nums.any { it > 5 }) // true
    println(nums.all { it > 0 }) // true
    println(nums.none { it < 0 }) // true
}

ฟังก์ชันกำหนดเองด้วย it

ฟังก์ชันลำดับสูงใด ๆ ที่รับแลมบ์ดาซึ่งมีพารามิเตอร์หนึ่งตัว จะให้คุณใช้ it ได้โดยอัตโนมัติ

fun <T> List<T>.firstWhere(predicate: (T) -> Boolean): T? {
    for (item in this) if (predicate(item)) return item
    return null
}
fun main() {
    val n = listOf(3, 8, 4, 5).firstWhere { it > 5 }
    println(n) // 8
}

it ภายในฟังก์ชันขอบเขต

ฟังก์ชันขอบเขตบางชนิด เช่น let และ also ใช้ it เป็นตัวรับ ส่วนฟังก์ชันอื่น เช่น apply และ run ใช้ this โปรดเลือกตามว่าต้องการอ้างอิงตัวรับอย่างชัดเจนหรือไม่

fun main() {
    val name: String? = "Kotlin"
    name?.let { println("hello $it") } // it = name
}

ตรวจสอบความเข้าใจ

คุณสามารถใช้ it แทนการตั้งชื่อพารามิเตอร์ของแลมบ์ดาได้เมื่อใด

สรุปทบทวน

it คือชื่อโดยนัยของพารามิเตอร์เดียวในแลมบ์ดาที่มีพารามิเตอร์หนึ่งตัว ใช้เพื่อย่อแลมบ์ดาสั้น ๆ เมื่อตัวแลมบ์ดามีเนื้อหามากขึ้น หรือเมื่อการซ้อนกันอาจทำให้สับสน ให้ตั้งชื่อพารามิเตอร์อย่างชัดเจน

คำถามที่พบบ่อย

บทเรียน “it: พารามิเตอร์โดยนัย” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “it: พารามิเตอร์โดยนัย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “it: พารามิเตอร์โดยนัย”

ใช้พารามิเตอร์ it โดยนัยใน lambda ที่มีพารามิเตอร์เดียว คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “it: พารามิเตอร์โดยนัย” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม

ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Lambda คืออะไร ไวยากรณ์และชนิด
  2. ส่ง Lambda ให้ฟังก์ชัน
  3. it: พารามิเตอร์โดยนัย
  4. filter, map และ find บนคอลเลกชัน
← กลับไปที่ Kotlin Academy