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

ฟังก์ชัน Infix

การเรียกฟังก์ชันที่อ่านง่าย

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

ฟังก์ชันอินฟิกซ์คืออะไร

ฟังก์ชันอินฟิกซ์สามารถเรียกใช้ได้โดยไม่ต้องมีจุดหรือวงเล็บ: a func b ให้ระบุฟังก์ชันด้วยคีย์เวิร์ด infix

infix fun Int.times2(factor: Int) = this * factor

fun main() {
    println(3 times2 4)
}

กฎสำหรับอินฟิกซ์

ฟังก์ชันอินฟิกซ์ต้องเป็นฟังก์ชันสมาชิกหรือฟังก์ชันส่วนขยาย รับพารามิเตอร์เพียงหนึ่งตัว และพารามิเตอร์นั้นต้องไม่เป็น vararg หรือมีค่าเริ่มต้น

infix fun Int.plusBy(other: Int) = this + other

fun main() {
    println(5 plusBy 7)
}

ฟังก์ชันอินฟิกซ์ในตัว

ฟังก์ชันมาตรฐานจำนวนมากเป็นฟังก์ชันอินฟิกซ์ เช่น to ซึ่งสร้างคู่ข้อมูล, and, or, shl รวมถึง until, downTo และ step สำหรับช่วง

fun main() {
    val pair = "key" to 42
    println(pair)
    for (i in 1 until 4) print(i)
}

การสร้างคู่ข้อมูลด้วย to

ไวยากรณ์แมปที่คุ้นเคยอย่าง "a" to 1 ก็คือฟังก์ชันอินฟิกซ์ to ที่ส่งคืนคู่ข้อมูลนั่นเอง

fun main() {
    val map = mapOf(1 to "one", 2 to "two")
    println(map[2])
}

อินฟิกซ์ในฐานะฟังก์ชันสมาชิก

ฟังก์ชันอินฟิกซ์สามารถเป็นฟังก์ชันสมาชิกได้ ทำให้คุณเขียนนิพจน์ของโดเมนต่อเนื่องกันได้อย่างลื่นไหล

class Money(val cents: Int) {
    infix fun add(o: Money) = Money(cents + o.cents)
}

fun main() {
    val total = Money(100) add Money(50)
    println(total.cents)
}

ให้ความสำคัญกับความอ่านง่ายเป็นอันดับแรก

อินฟิกซ์มีประโยชน์เมื่อการเรียกใช้สามารถอ่านได้เหมือนประโยค ควรเลือกชื่อที่มีลักษณะเหมือนคำกริยา เพื่อให้ a name b อ่านต่อเนื่องอย่างเป็นธรรมชาติ

infix fun String.repeatedTimes(n: Int) = this.repeat(n)

fun main() {
    println("ab" repeatedTimes 3)
}

ลำดับความสำคัญของการเรียกใช้อินฟิกซ์

การเรียกใช้อินฟิกซ์มีลำดับความสำคัญต่ำกว่าการคำนวณทางคณิตศาสตร์ แต่สูงกว่าการเปรียบเทียบ ควรเพิ่มวงเล็บเมื่อผสมการเรียกใช้หลายแบบเพื่อให้ชัดเจน

infix fun Int.combine(o: Int) = this * 10 + o

fun main() {
    println(1 combine 2 + 3)
}

ตัวรับ this

ในฟังก์ชันส่วนขยายแบบอินฟิกซ์ this คือตัวถูกดำเนินการด้านซ้าย ส่วนพารามิเตอร์คือตัวถูกดำเนินการด้านขวา

infix fun Int.minus2(o: Int) = this - o

fun main() {
    println(10 minus2 3)
}

การเชื่อมการเรียกใช้อินฟิกซ์

การเรียกใช้อินฟิกซ์จับกลุ่มจากซ้ายไปขวา คุณจึงสามารถเชื่อมการเรียกใช้ต่อกันได้

infix fun Int.then(o: Int) = this + o

fun main() {
    println(1 then 2 then 3)
}

หลีกเลี่ยงการใช้อินฟิกซ์มากเกินไป

อินฟิกซ์ช่วยตัดจุดและวงเล็บออก ซึ่งอาจทำให้การดำเนินการที่ไม่ชัดเจนอ่านยากขึ้น ควรใช้เฉพาะเมื่อช่วยให้อ่านได้ดีขึ้น

infix fun Int.power(exp: Int): Int {
    var r = 1
    repeat(exp) { r *= this }
    return r
}

fun main() {
    println(2 power 5)
}

ตัวอย่างที่อ่านได้อย่างลื่นไหล

อินฟิกซ์ช่วยให้การตรวจสอบเงื่อนไขหรือการสร้างอ็อบเจ็กต์อ่านได้เกือบเหมือนภาษาอังกฤษ

infix fun String.shouldStartWith(prefix: String) =
    this.startsWith(prefix)

fun main() {
    println("kotlin" shouldStartWith "kot")
}

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจเกี่ยวกับฟังก์ชันอินฟิกซ์

สรุปทบทวน

คุณได้เรียนรู้เรื่องฟังก์ชันอินฟิกซ์:

  • ระบุด้วย infix และเรียกใช้ในรูปแบบ a func b
  • ต้องเป็นฟังก์ชันสมาชิกหรือฟังก์ชันส่วนขยายที่มีพารามิเตอร์หนึ่งตัว ซึ่งไม่ใช่ vararg และไม่มีค่าเริ่มต้น
  • to, until และ downTo เป็นฟังก์ชันอินฟิกซ์ในตัว
  • ใช้เมื่อช่วยให้โค้ดอ่านง่ายขึ้นอย่างแท้จริง
infix fun Int.add(o: Int) = this + o

fun main() {
    println(4 add 6)
}

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

บทเรียน “ฟังก์ชัน Infix” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ฟังก์ชัน Infix”

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

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

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

บทเรียน “ฟังก์ชัน Infix” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ฟังก์ชัน Infix
  2. การสร้าง API ลักษณะ DSL
  3. ฟังก์ชัน tailrec
  4. ควรใช้แต่ละแบบเมื่อใด
← กลับไปที่ Kotlin Academy