ฟังก์ชัน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ