ช่วงของ Char และช่วงแบบกำหนดเอง
มากกว่าจำนวนเต็ม
ช่วงของ Char และช่วงแบบกำหนดเอง เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
นอกเหนือจากจำนวนเต็ม
ช่วงค่าไม่ได้มีไว้สำหรับ Int เท่านั้น Kotlin รองรับช่วงค่าของอักขระและชนิดอื่นที่เปรียบเทียบกันได้
บทเรียนนี้จะสำรวจช่วงค่าอักขระและวิธีที่ชนิดข้อมูลแบบกำหนดเองสามารถเข้าร่วมได้ด้วย rangeTo
ทบทวนช่วงค่าอักขระ
อักขระมีลำดับที่กำหนดไว้ ดังนั้น 'a'..'z' จึงเป็นช่วงค่าที่ถูกต้อง
คุณสามารถวนซ้ำ ตรวจสอบการเป็นสมาชิก และทำสิ่งอื่น ๆ ได้
fun main() {
for (c in 'a'..'f') print(c)
println()
println('q' in 'a'..'z')
}การตรวจสอบความถูกต้องของอักขระ
ช่วงค่าอักขระทำให้การตรวจสอบข้อมูลนำเข้าอ่านเข้าใจง่าย เช่น การตรวจสอบว่าเป็นตัวเลขหรือตัวอักษร
fun isDigit(c: Char): Boolean = c in '0'..'9'
fun main() {
println(isDigit('7'))
println(isDigit('x'))
}การนับตัวอักษร
คุณสามารถสร้างชุดตัวอักษรอย่างรวดเร็วได้โดยวนซ้ำผ่านช่วงค่าอักขระและรวบรวมค่าต่าง ๆ
fun main() {
val alphabet = ('a'..'z').toList()
println(alphabet.size)
println(alphabet.first())
println(alphabet.last())
}ช่วงค่าของจำนวนเต็มขนาดใหญ่
ช่วงค่าใช้กับ Long ได้เช่นกัน จึงเหมาะสำหรับช่วงตัวเลขขนาดใหญ่
ใช้ตัวดำเนินการแบบเดียวกัน
fun main() {
val big = 1L..5L
println(big.sum())
}ช่วงค่าของชนิดที่เปรียบเทียบได้
ชนิด Comparable ใด ๆ ก็สามารถสร้างช่วงค่าด้วย .. ได้ แต่ช่วงค่าเหล่านี้รองรับเฉพาะการตรวจสอบการเป็นสมาชิก ไม่รองรับการวนซ้ำ
ตัวอย่างเช่น ช่วงค่าของ String จะตรวจสอบลำดับตามพจนานุกรม
fun main() {
val range = "apple".."mango"
println("cherry" in range)
println("zebra" in range)
}เหตุผลที่ช่วงค่าบางชนิดวนซ้ำไม่ได้
การวนซ้ำจำเป็นต้องมีขนาดก้าวที่กำหนดไว้ จำนวนเต็มและอักขระมีขนาดก้าวดังกล่าว (เพิ่มทีละ 1) แต่ข้อความและค่าทศนิยมไม่มีค่าถัดไปที่ชัดเจน
ดังนั้นช่วงค่าเหล่านั้นจึงรองรับ in แต่ไม่รองรับลูป for
fun main() {
val r = 1.0..5.0
println(2.5 in r)
// for (x in r) // not allowed for Double
}ชนิดข้อมูลแบบกำหนดเองกับ rangeTo
ตัวดำเนินการ .. จะเรียกฟังก์ชัน rangeTo หากคลาสของคุณใช้ Comparable คุณจะได้รับความสามารถในการตรวจสอบการเป็นสมาชิกของช่วงค่าโดยอัตโนมัติ
ในที่นี้คลาสเวอร์ชันอย่างง่ายจะเปรียบเทียบค่าตัวเลข
data class Ver(val n: Int) : Comparable<Ver> {
override fun compareTo(other: Ver) = n - other.n
}
fun main() {
val range = Ver(1)..Ver(5)
println(Ver(3) in range)
println(Ver(9) in range)
}ตัวดำเนินการเบื้องหลัง
การเขียน a..b ให้ผลเหมือนกับการเรียก a.rangeTo(b)
รูปแบบตัวดำเนินการเป็นเพียงไวยากรณ์ที่อ่านสะดวกกว่าสำหรับฟังก์ชันเดียวกัน
fun main() {
val r1 = 1..5
val r2 = 1.rangeTo(5)
println(r1.toList() == r2.toList())
}การเลือกช่วงค่าที่เหมาะสม
คำแนะนำอย่างรวดเร็ว:
- ตัวเลขและอักขระ → วนซ้ำและตรวจสอบการเป็นสมาชิก
- ค่าทศนิยมและชนิดที่เปรียบเทียบได้แบบกำหนดเอง → ตรวจสอบการเป็นสมาชิกเท่านั้น
- ต้องการกำหนดขนาดก้าวหรือไม่ ให้ใช้ลำดับการไล่ค่าของจำนวนเต็มหรืออักขระ
fun main() {
println('m' in 'a'..'z')
println(3.5 in 1.0..4.0)
println(50 in 1..100)
}สรุปรวม
ช่วงค่าสามารถใช้ได้กับชนิดข้อมูลหลายประเภท:
- ช่วงค่าอักขระใช้วนซ้ำและตรวจสอบความถูกต้องได้
- ช่วงค่า
Longรองรับช่วงตัวเลขขนาดใหญ่ - ชนิดที่เปรียบเทียบได้และชนิดข้อมูลแบบกำหนดเองรองรับการตรวจสอบการเป็นสมาชิก
..เป็นรูปแบบย่อของrangeTo
fun main() {
val vowels = "aeiou"
for (c in 'a'..'z') {
if (c in vowels) print(c)
}
println()
}ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจของคุณเกี่ยวกับช่วงค่าอักขระและช่วงค่าแบบกำหนดเอง
ทบทวน
คุณได้เรียนรู้เกี่ยวกับช่วงค่าอักขระและช่วงค่าแบบกำหนดเอง:
- ช่วงค่าอักขระและ
Longวนซ้ำได้เช่นเดียวกับInt - ชนิดที่เปรียบเทียบได้รองรับการตรวจสอบการเป็นสมาชิกผ่าน
.. - ชนิดข้อมูลที่มีค่าไม่ต่อเนื่องตรวจสอบด้วย
inได้ แต่ไม่สามารถวนลูปได้ ..เป็นรูปแบบย่อของrangeTo
เท่านี้ก็จบหลักสูตรช่วงค่าและลำดับการไล่ค่า
เรียนรู้ Kotlin ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 51
- บทเรียน
- 203
คำถามที่พบบ่อย
บทเรียน “ช่วงของ Char และช่วงแบบกำหนดเอง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ช่วงของ Char และช่วงแบบกำหนดเอง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ช่วงของ Char และช่วงแบบกำหนดเอง”
มากกว่าจำนวนเต็ม คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “ช่วงของ Char และช่วงแบบกำหนดเอง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม
ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ตัวดำเนินการช่วง
- step และ downTo
- ช่วงในลูป
- ช่วงของ Char และช่วงแบบกำหนดเอง