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

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

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

  1. การสร้างส่วนตัดด้วยช่วงค่า
  2. ความหมายของดัชนีใน ArraySlice
  3. การแปลงส่วนตัดกลับเป็นอาร์เรย์
  4. prefix, suffix และ dropFirst
← กลับไปที่ Swift Academy