Swift Academy · บทเรียน

พร็อพเพอร์ตีและซับสคริปต์

ใช้พร็อพเพอร์ตีที่จัดเก็บแบบ lazy พร็อพเพอร์ตีคำนวณแบบ get/set ตัวสังเกตพร็อพเพอร์ตี และซับสคริปต์สำหรับการกำหนดดัชนีแบบกำหนดเอง

บทเรียน 1 จาก 48 ขั้นตอน

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

บทนำ

บทเรียนนี้ครอบคลุมคุณสมบัติขั้นสูง: คุณสมบัติแบบ lazy คุณสมบัติที่คำนวณด้วย get/set ตัวสังเกตการณ์ และซับสคริปต์แบบกำหนดเอง

คุณสมบัติ lazy

คุณสมบัติlazyจะถูกสร้างขึ้นเมื่อมีการเข้าถึงครั้งแรกเท่านั้น เหมาะสำหรับงานที่ใช้ทรัพยากรมาก

struct DataLoader {
    lazy var data: [Int] = {
        print("Loading...")
        return [1,2,3]
    }()
}
var loader = DataLoader()
print("before access")
print(loader.data)

get/set ที่คำนวณ

คุณสมบัติที่คำนวณใช้บล็อก get/set เพื่อคำนวณหรือปรับปรุงค่า

struct Circle {
    var radius: Double
    var diameter: Double {
        get { return radius * 2 }
        set { radius = newValue / 2 }
    }
}
var c = Circle(radius: 5)
print(c.diameter)  // 10
c.diameter = 20
print(c.radius)    // 10

ตัวสังเกตการณ์

ใช้ willSet และ didSet เพื่อตอบสนองต่อการเปลี่ยนแปลงของคุณสมบัติ

class Account {
    var balance: Double = 0 {
        willSet { print("Will set to", newValue) }
        didSet  { print("Did set from", oldValue) }
    }
}
var a = Account()
a.balance = 50

ซับสคริปต์

ซับสคริปต์ช่วยให้กำหนดการเข้าถึงแบบกำหนดเองด้วยไวยากรณ์วงเล็บเหลี่ยมได้

struct TimesTable {
    let multiplier: Int
    subscript(i: Int) -> Int {
        return multiplier * i
    }
}
let three = TimesTable(multiplier: 3)
print(three[4])   // 12

ซับสคริปต์หลายพารามิเตอร์

ซับสคริปต์รับพารามิเตอร์หลายตัวได้ เช่น เมทริกซ์ที่มีดัชนีแถวและคอลัมน์

struct Matrix {
    var grid: [[Int]]
    subscript(row: Int, col: Int) -> Int {
        return grid[row][col]
    }
}
let m = Matrix(grid:[[1,2],[3,4]])
print(m[1,0])   // 3

คำถามเกี่ยวกับ lazy

ตรวจสอบอย่างรวดเร็ว: คีย์เวิร์ด lazy ทำหน้าที่อะไร

สรุปทบทวน

สรุปทบทวน: ใช้ lazy สำหรับการเริ่มต้นที่เลื่อนออกไป ใช้ get/set สำหรับคุณสมบัติที่คำนวณ ใช้ willSet/didSet สำหรับการสังเกตการเปลี่ยนแปลง และใช้ซับสคริปต์สำหรับการเข้าถึงแบบกำหนดเอง

เริ่มต้นได้ฟรี

เรียนรู้ Swift ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
122
บทเรียน
409

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

บทเรียน “พร็อพเพอร์ตีและซับสคริปต์” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “พร็อพเพอร์ตีและซับสคริปต์”

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

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

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

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

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

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

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

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

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