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

ซับสคริปต์สำหรับการกำหนดดัชนีแบบกำหนดเอง

กำหนดซับสคริปต์แบบกำหนดเองเพื่ออ่านและเขียนองค์ประกอบด้วยไวยากรณ์คล้ายอาร์เรย์ เพิ่มตัวเข้าถึงที่ปลอดภัย รองรับการกำหนดดัชนีหลายพารามิเตอร์ และแม้แต่ซับสคริปต์ระดับชนิด (static)

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

ภาพรวม

ใช้ตัวห้อยเพื่อเข้าถึงข้อมูลด้วยรูปแบบวงเล็บเหลี่ยม คุณสามารถทำให้ตัวห้อยอ่านได้อย่างเดียวหรืออ่านเขียนได้ และยังรับดัชนีหลายตัวได้ด้วย

ตัวห้อยแบบอ่านเขียน

สร้างตัวห้อยแบบรับค่า/กำหนดค่าเพื่อเปิดเผยพื้นที่จัดเก็บภายในด้วยรูปแบบคล้ายอาร์เรย์

struct Box {
    private var items: [String] = []
    init(_ values: [String]) { self.items = values }

    subscript(index: Int) -> String {
        get { items[index] }           // may trap if out of bounds (like Array)
        set { items[index] = newValue }
    }
}
var b = Box(["a","b","c"])
print(b[1])     // "b"
b[1] = "B"
print(b[1])     // "B"

ตัวห้อยที่ปลอดภัย

คืนค่าเลือกได้เพื่อหลีกเลี่ยงข้อผิดพลาดร้ายแรงเมื่อใช้ดัชนีไม่ถูกต้อง ซึ่งเป็นตัวห้อยแบบปลอดภัย

extension Array {
    subscript(safe i: Int) -> Element? {
        return indices.contains(i) ? self[i] : nil
    }
}
let arr = [10,20]
print(arr[safe: 1] ?? -1)  // 20
print(arr[safe: 5] ?? -1)  // -1

หลายพารามิเตอร์

ตัวห้อยสามารถรับพารามิเตอร์หลายตัวได้ เหมาะอย่างยิ่งสำหรับเมทริกซ์หรือการเข้าถึงพิกัด

struct Matrix {
    let rows: Int, cols: Int
    private var grid: [Int]
    init(rows: Int, cols: Int, fill: Int = 0) {
        self.rows = rows; self.cols = cols
        self.grid = Array(repeating: fill, count: rows*cols)
    }
    private func index(_ r: Int, _ c: Int) -> Int { r*cols + c }

    subscript(r: Int, c: Int) -> Int {
        get { grid[index(r,c)] }
        set { grid[index(r,c)] = newValue }
    }
}
var m = Matrix(rows: 2, cols: 3)
m[0, 2] = 7
print(m[0, 2])

ตัวห้อยระดับชนิดข้อมูล

เพิ่มตัวห้อยระดับชนิดข้อมูล (ด้วย static) เพื่อใช้ดัชนีกับตัวชนิดข้อมูลเอง ไม่ใช่อินสแตนซ์

struct Roman {
    static let map: [Int:String] = [1:"I", 5:"V", 10:"X"]
    static subscript(_ n: Int) -> String? {
        return map[n]
    }
}
print(Roman[5] ?? "?")   // "V"

เคล็ดลับ

เคล็ดลับ:

  • ควรคืนค่าเลือกได้เพื่อการเข้าถึงที่ปลอดภัย
  • รักษาตัวห้อยให้เรียบง่าย ตรรกะที่ซับซ้อนควรอยู่ในเมธอด
  • ตั้งชื่อพารามิเตอร์ให้ชัดเจน เช่น [row:col:]

ความหมายของตัวห้อย

ตรวจสอบอย่างรวดเร็ว: ตัวห้อยช่วยให้ทำอะไรได้บ้าง

สรุปทบทวน

สรุปทบทวน: สร้างตัวห้อยแบบอ่านเขียน เพิ่มตัวเข้าถึงค่าเลือกได้แบบปลอดภัย รองรับการใช้ดัชนีแบบหลายพารามิเตอร์ และยังกำหนดตัวห้อยระดับชนิดข้อมูลได้ด้วย

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

บทเรียน “ซับสคริปต์สำหรับการกำหนดดัชนีแบบกำหนดเอง” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ซับสคริปต์สำหรับการกำหนดดัชนีแบบกำหนดเอง”

กำหนดซับสคริปต์แบบกำหนดเองเพื่ออ่านและเขียนองค์ประกอบด้วยไวยากรณ์คล้ายอาร์เรย์ เพิ่มตัวเข้าถึงที่ปลอดภัย รองรับการกำหนดดัชนีหลายพารามิเตอร์ และแม้แต่ซับสคริปต์ระดับชนิด (static) คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “ซับสคริปต์สำหรับการกำหนดดัชนีแบบกำหนดเอง” ใช้เวลานานแค่ไหน

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

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

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

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

  1. พร็อพเพอร์ตีและซับสคริปต์
  2. lazy และตัวสังเกตพร็อพเพอร์ตี
  3. พร็อพเพอร์ตีคำนวณด้วย get/set
  4. ซับสคริปต์สำหรับการกำหนดดัชนีแบบกำหนดเอง
← กลับไปที่ Swift Academy