ความหมายของดัชนีใน ArraySlice
ทำความเข้าใจว่าเหตุใดดัชนีของส่วนตัดจึงคงตำแหน่งเดิมไว้
ความหมายของดัชนีใน ArraySlice เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
slice เก็บดัชนีเดิมไว้
ข้อควรระวังสำคัญคือ ArraySlice จะไม่เริ่มดัชนีใหม่จากศูนย์ แต่จะเก็บดัชนีเดียวกับที่มีอยู่ในอาร์เรย์หลัก
let arr = [10, 20, 30, 40, 50]
let slice = arr[2..<5]
print(slice.startIndex)
print(slice.endIndex)startIndex ไม่ได้เป็นศูนย์เสมอไป
startIndex ของ slice จะเท่ากับขอบเขตล่างที่ใช้สร้าง slice นั้น สำหรับ arr[2..<5] ดัชนีเริ่มต้นคือ 2
let arr = [1, 2, 3, 4, 5, 6]
let slice = arr[3..<6]
print("start:", slice.startIndex)
print("first value:", slice[slice.startIndex])การใช้ดัชนีกับ slice
เนื่องจากดัชนีถูกเก็บไว้ คุณต้องใช้ดัชนีของ slice เอง การเข้าถึง slice[0] ใน slice ที่เริ่มต้นที่ดัชนี 2 จะทำให้โปรแกรมหยุดทำงานขณะรัน
let arr = [100, 200, 300, 400]
let slice = arr[2..<4]
print(slice[2])
print(slice[3])ใช้ startIndex อย่างปลอดภัย
หากต้องการรับองค์ประกอบแรกไม่ว่า slice จะเริ่มต้นที่ใด ให้ใช้ slice.first หรือ slice[slice.startIndex]
let arr = [5, 6, 7, 8, 9]
let slice = arr[2..<5]
print(slice.first ?? -1)
print(slice[slice.startIndex])endIndex อยู่ถัดจากตัวสุดท้ายหนึ่งตำแหน่ง
เช่นเดียวกับอาร์เรย์ endIndex จะชี้ไปยังตำแหน่งที่ถัดจากองค์ประกอบสุดท้ายที่ใช้งานได้หนึ่งตำแหน่ง การใช้ดัชนีที่ endIndex จึงไม่ถูกต้อง
let arr = [11, 22, 33, 44]
let slice = arr[1..<3]
print("endIndex:", slice.endIndex)
print("last valid:", slice[slice.endIndex - 1])จำนวนสมาชิกกับดัชนี
count ของ slice คือจำนวนองค์ประกอบ ซึ่งอาจแตกต่างจาก endIndex อย่าสันนิษฐานว่าจำนวนสมาชิกเท่ากับดัชนีสุดท้าย
let arr = [0, 1, 2, 3, 4, 5]
let slice = arr[3..<6]
print("count:", slice.count)
print("startIndex:", slice.startIndex)คุณสมบัติ indices
ใช้คุณสมบัติ indices เพื่อวนซ้ำผ่านช่วงดัชนีที่ใช้งานได้ของ slice อย่างปลอดภัย
let arr = [10, 20, 30, 40, 50]
let slice = arr[1..<4]
for i in slice.indices {
print(i, slice[i])
}เหตุใดจึงเก็บดัชนีไว้
การเก็บดัชนีไว้ช่วยให้คุณจับคู่ตำแหน่งใน slice กลับไปยังอาร์เรย์ต้นฉบับได้โดยไม่ต้องจัดการข้อมูลเพิ่มเติม ดัชนีที่คุณพบยังใช้งานได้ในอาร์เรย์หลักด้วย
let arr = ["a", "b", "c", "d", "e"]
let slice = arr[2..<5]
if let idx = slice.firstIndex(of: "d") {
print("found at parent index:", idx)
print("parent has:", arr[idx])
}enumerate เริ่มนับใหม่จากศูนย์
หากต้องการตำแหน่งที่เริ่มนับจากศูนย์ ให้ใช้ enumerated() ฟังก์ชันนี้จะให้ค่า offset ที่เริ่มจาก 0 ไม่ว่า startIndex ของ slice จะเป็นเท่าใด
let arr = [9, 8, 7, 6, 5]
let slice = arr[2..<5]
for (offset, value) in slice.enumerated() {
print(offset, value)
}ระยะห่างจากจุดเริ่มต้น
หากต้องการคำนวณ offset ที่เริ่มจากศูนย์จากดัชนีหนึ่ง ให้ใช้ distance(from:to:)
let arr = [1, 2, 3, 4, 5]
let slice = arr[2..<5]
let idx = slice.startIndex + 1
let offset = slice.distance(from: slice.startIndex, to: idx)
print("offset:", offset, "value:", slice[idx])ข้อผิดพลาดที่พบบ่อย
การลืมว่า slice เก็บดัชนีของอาร์เรย์หลักไว้เป็นหนึ่งในข้อผิดพลาดของ Swift ที่พบบ่อยที่สุด ควรเลือกใช้ first, enumerated() หรือ startIndex แทนการใช้ 0 ที่กำหนดตายตัวเสมอ
let arr = [100, 200, 300, 400, 500]
let slice = arr[3..<5]
// Safe: use first, not slice[0]
print(slice.first ?? 0)ตรวจสอบความเข้าใจ
วิเคราะห์การทำงานของดัชนีใน slice
สรุป
ArraySlice เก็บดัชนีของอาร์เรย์หลักไว้ โดย startIndex คือขอบเขตล่าง ไม่ใช่ศูนย์ ใช้ first, startIndex, indices หรือ enumerated() เพื่อเข้าถึงข้อมูลอย่างปลอดภัย และอย่าใช้ 0 ที่กำหนดตายตัว
let slice = [5, 6, 7, 8, 9][3..<5]
print(slice.startIndex, slice.first ?? -1)คำถามที่พบบ่อย
บทเรียน “ความหมายของดัชนีใน ArraySlice” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ความหมายของดัชนีใน ArraySlice” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ความหมายของดัชนีใน ArraySlice”
ทำความเข้าใจว่าเหตุใดดัชนีของส่วนตัดจึงคงตำแหน่งเดิมไว้ คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ความหมายของดัชนีใน ArraySlice” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม
ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสร้างส่วนตัดด้วยช่วงค่า
- ความหมายของดัชนีใน ArraySlice
- การแปลงส่วนตัดกลับเป็นอาร์เรย์
- prefix, suffix และ dropFirst