🔸implementer

devtermsroles ⟩ implementer

實現者implementerprovider 程式開發中,寫函數型別定義的人 (或程式碼)。 🈯 通常指「某一段程式碼

// ⭐️ 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` 協議的方法

Last updated