ซับสคริปต์สำหรับการกำหนดดัชนีแบบกำหนดเอง
กำหนดซับสคริปต์แบบกำหนดเองเพื่ออ่านและเขียนองค์ประกอบด้วยไวยากรณ์คล้ายอาร์เรย์ เพิ่มตัวเข้าถึงที่ปลอดภัย รองรับการกำหนดดัชนีหลายพารามิเตอร์ และแม้แต่ซับสคริปต์ระดับชนิด (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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พร็อพเพอร์ตีและซับสคริปต์
- lazy และตัวสังเกตพร็อพเพอร์ตี
- พร็อพเพอร์ตีคำนวณด้วย get/set
- ซับสคริปต์สำหรับการกำหนดดัชนีแบบกำหนดเอง