Last updated 2 months ago
Was this helpful?
dev ⟩ terms ⟩ roles ⟩ user
使用者╱user╱consumer╱client 程式開發中,使用函數、型別定義的人 (或程式碼)。 通常指「某一段程式碼」
// ⭐️ implementer: // 在這裡,`makeCircle` 就是實現者,他決定了返回值的具體型別是 `Circle`, // 雖然對外只暴露 `some Shape`(使用者只知道返回值是 `some Shape`)。 func makeCircle(radius: Double) -> some Shape { return Circle(radius: radius) } // ⭐️ user: // 呼叫 `makeCircle` 的程式碼就是使用者,使用者只知道返回型別符合 Shape 協議, // 但不知道具體型別是什麼(因為返回值是 some Shape)。 let shape = makeCircle(radius: 5)
// ⭐️ implementer: 定義型別、函數 // ------------------------------ protocol MyShape { func area() -> Double } struct MyCircle: MyShape { var radius: Double func area() -> Double { .pi * radius * radius } } func makeCircle() -> some MyShape { return MyCircle(radius: 10) // ⭐️ 實現者決定具體型別:`MyCircle` } // ⭐️ user: 使用型別、函數 // ------------------------------ let shape = makeCircle() // ⭐️ 使用者只能知道它是:`some MyShape` print(shape.area()) // ⭐️ 可使用 `MyShape` 協議的方法
ChatGPT ⟩ 學習 Swift
some╱any╱generics:實現者與使用者對型別有不同的控制權。