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

คุณสมบัติที่คำนวณในโครงสร้าง

หาค่าจากคุณสมบัติที่คำนวณแบบ get อย่างเดียว และแบบ get/set

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

ยินดีต้อนรับ

คุณสมบัติที่คำนวณไม่ได้จัดเก็บค่าไว้ — แต่จะคำนวณและคืนค่าเมื่อมีการร้องขอ คุณสมบัติเหล่านี้ดูเหมือนคุณสมบัติทั่วไปสำหรับผู้เรียกใช้ แต่ภายในจะเรียกใช้โค้ด

คุณสมบัติที่คำนวณแบบอ่านอย่างเดียว

```swift struct Circle { var radius: Double var area: Double { .pi * radius * radius } var circumference: Double { 2 * .pi * radius } } var c = Circle(radius: 5) print(c.area) // 78.53... ```

การอ่านและการกำหนดค่า

```swift struct Temperature { var celsius: Double var fahrenheit: Double { get { celsius * 9/5 + 32 } set { celsius = (newValue - 32) * 5/9 } } } var t = Temperature(celsius: 0) print(t.fahrenheit) // 32 t.fahrenheit = 212 print(t.celsius) // 100 ```

การอ่านแบบย่อ — การละคีย์เวิร์ด get

สำหรับคุณสมบัติแบบอ่านอย่างเดียว ไม่จำเป็นต้องมีตัวครอบ `get { }`: ```swift var area: Double { .pi * radius * radius } // same as { get { ... } } ```

newValue ในการกำหนดค่า

ภายใน `set` ค่าที่เข้ามาจะมีชื่อว่า `newValue` โดยค่าเริ่มต้น: ```swift set { celsius = (newValue - 32) * 5/9 } ``` หรือจะตั้งชื่อให้ชัดเจนก็ได้: ```swift set(degF) { celsius = (degF - 32) * 5/9 } ```

คุณสมบัติที่คำนวณไม่มีการจัดเก็บค่า

คุณสมบัติที่คำนวณไม่มีพื้นที่จัดเก็บเบื้องหลัง — ทุกครั้งที่เข้าถึงจะเรียกใช้โค้ด: ```swift struct Stats { var scores: [Int] var average: Double { guard !scores.isEmpty else { return 0 } return Double(scores.reduce(0,+)) / Double(scores.count) } } ```

คุณสมบัติที่คำนวณแบบคงที่

```swift struct Config { static var appName: String { Bundle.main.infoDictionary?["CFBundleName"] as? String ?? "App" } } print(Config.appName) ```

คุณสมบัติที่คำนวณในโปรโตคอล

```swift protocol Greetable { var greeting: String { get } } struct Person: Greetable { var name: String var greeting: String { "Hello, \(name)!" } } ``` โปรโตคอลสามารถกำหนดให้มีคุณสมบัติที่คำนวณได้ เพียงระบุ `{ get }` หรือ `{ get set }`

ประสิทธิภาพของคุณสมบัติที่คำนวณเทียบกับคุณสมบัติที่จัดเก็บ

• คุณสมบัติที่คำนวณ: คำนวณใหม่ทุกครั้งที่เข้าถึง — หลีกเลี่ยงการคำนวณที่ใช้เวลานานในคุณสมบัติที่มีการอ่านบ่อย • ใช้ `lazy var` สำหรับค่าที่คำนวณครั้งเดียวแต่ใช้เวลานาน: ```swift lazy var thumbnail: UIImage = generateThumbnail() ```

เนื้อหานิพจน์เทียบกับบล็อก

คุณสมบัติที่คำนวณแบบนิพจน์เดียวใน Swift 5.9 ขึ้นไปจะคืนค่าโดยอัตโนมัติ: ```swift var fullName: String { "\(first) \(last)" } // equivalent to: var fullName: String { return "\(first) \(last)" } ```

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ชื่อเริ่มต้นของค่าที่เข้ามาภายในบล็อก `set` ของคุณสมบัติคืออะไร

สรุป

ประเด็นสำคัญ: • คุณสมบัติที่คำนวณจะเรียกใช้โค้ดทุกครั้งที่เข้าถึง โดยไม่มีพื้นที่จัดเก็บเบื้องหลัง • แบบอ่านอย่างเดียว: ละ `get`/`set` หรือใช้รูปแบบย่อ `{ return ... }` • แบบอ่านและเขียน: ระบุบล็อก `get` และ `set(newValue)` • เหมาะสำหรับค่าที่ได้จากการคำนวณ เช่น `area`, `fullName` และการแปลงหน่วย • ใช้ `lazy` สำหรับค่าที่คำนวณครั้งเดียวและใช้เวลานาน ถัดไป: เมธอดที่เปลี่ยนแปลงค่า

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

บทเรียน “คุณสมบัติที่คำนวณในโครงสร้าง” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “คุณสมบัติที่คำนวณในโครงสร้าง”

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

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

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

บทเรียน “คุณสมบัติที่คำนวณในโครงสร้าง” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ตัวเริ่มต้นแบบสมาชิกและตัวเริ่มต้นแบบกำหนดเอง
  2. คุณสมบัติที่จัดเก็บและตัวสังเกตคุณสมบัติ
  3. คุณสมบัติที่คำนวณในโครงสร้าง
  4. เมธอดที่เปลี่ยนแปลงค่าและความหมายเชิงอรรถศาสตร์แบบคัดลอกเมื่อเขียน
← กลับไปที่ Swift Academy