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

การประกอบโพรโทคอลด้วย &

รวมโพรโทคอลหลายรายการให้เป็นข้อกำหนดชนิดเดียว

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

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

การประกอบโพรโทคอลช่วยให้คุณรวมโพรโทคอลหลายตัวเป็นข้อกำหนดชนิดเดียวโดยใช้ `&` ซึ่งเป็นแนวทางของ Swift สำหรับการสืบทอดหลายทาง

การประกอบพื้นฐาน

```swift protocol Named { var name: String { get } } protocol Aged { var age: Int { get } } func describe(_ entity: Named & Aged) { print("\(entity.name) is \(entity.age)") } ``` `Named & Aged` เป็นข้อกำหนดชนิดชั่วคราว ไม่ใช่โพรโทคอลใหม่

การใช้ในพารามิเตอร์ฟังก์ชัน

```swift protocol Drawable { func draw() } protocol Animatable { func animate() } func render(_ view: Drawable & Animatable) { view.draw() view.animate() } ```

การจัดเก็บชนิดที่ประกอบกัน

```swift var entity: Named & Aged = makePerson() entity.name // accessible entity.age // accessible ``` ชนิดของตัวแปรจะกำหนดว่าสมาชิกของโพรโทคอลใดบ้างที่เข้าถึงได้

การประกอบร่วมกับคลาส

```swift protocol Configurable { func configure() } func setup(_ vc: T) { vc.configure() present(vc, animated: true) } ``` ประกอบข้อกำหนดของคลาสเข้ากับโพรโทคอลโดยใช้ `&` ในชนิดทั่วไป

การประกอบโพรโทคอลเทียบกับโพรโทคอลใหม่

```swift // Don't create a new protocol just to combine: protocol NamedAndAged: Named, Aged {} // often unnecessary // Prefer inline composition at use sites: func describe(_ e: Named & Aged) { } ``` โพรโทคอลใหม่เหมาะสมก็ต่อเมื่อการผสมนี้จำเป็นต้องมีเมธอดส่วนขยาย

typealias สำหรับการประกอบที่ยาว

```swift typealias Service = Authenticable & Cacheable & Loggable func process(service: Service) { service.authenticate() service.log("processing") } ``` ใช้ `typealias` เพื่อตั้งชื่อให้การประกอบที่ใช้บ่อย

การประกอบในข้อจำกัดของชนิดทั่วไป

```swift func fetchAndCache(_ resource: T) async throws { let data = try await resource.fetch() resource.cache(data) } ```

การสืบทอดโพรโทคอลเทียบกับการประกอบ

• การสืบทอด: `protocol C: A, B {}` — C สืบทอดข้อกำหนดทั้งหมดของ A และ B • การประกอบ: `A & B` — ใช้ในบรรทัดนั้นโดยไม่สร้างชนิดใหม่ ใช้การสืบทอดเมื่อชนิดที่สอดคล้องทั้งหมดต้องตอบสนองทั้งสองโพรโทคอล และใช้การประกอบตรงจุดเรียกใช้งาน

ตัวอย่างในโลกจริง: ผู้รับมอบหมาย + แหล่งข้อมูล

```swift func setup(_ vc: UITableViewDelegate & UITableViewDataSource) { tableView.delegate = vc tableView.dataSource = vc } ``` ตัวควบคุมมุมมองหนึ่งตัวมักตอบสนองทั้งสองโพรโทคอล การประกอบจึงช่วยให้สื่อความหมายนี้ได้อย่างกระชับ

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

ตัวดำเนินการใดใช้รวมโพรโทคอลหลายตัวเป็นข้อกำหนดชนิดเดียว

สรุปทบทวน

ประเด็นสำคัญ: • `Protocol1 & Protocol2` — การประกอบในบรรทัดนั้น • ใช้กับพารามิเตอร์ ชนิดผลลัพธ์ และข้อจำกัดของชนิดทั่วไป • `typealias` ใช้ตั้งชื่อการประกอบที่ใช้บ่อย • ควรเลือกการประกอบแทนการสร้างโพรโทคอลที่ไม่มีเนื้อหาใหม่ • สามารถผสมข้อกำหนดของคลาสได้: `UIViewController & MyProtocol` ถัดไป: การสอดคล้องตามเงื่อนไข

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

บทเรียน “การประกอบโพรโทคอลด้วย &” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การประกอบโพรโทคอลด้วย &”

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

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

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

บทเรียน “การประกอบโพรโทคอลด้วย &” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การประกอบโพรโทคอลด้วย &
  2. การสอดคล้องตามเงื่อนไข
  3. ข้อกำหนด Self และการออกแบบ Equatable
  4. หลักการออกแบบโดยยึดโพรโทคอล
← กลับไปที่ Swift Academy