Swift không biết rằng loại chung T có toán tử '+'. Bạn không thể sử dụng + trên bất kỳ loại nào: ví dụ: trên hai bộ điều khiển chế độ xem + không có ý nghĩa quá nhiều
Bạn có thể sử dụng sự phù hợp của giao thức để cho phép nhanh chóng biết một số điều về loại của bạn!
Tôi đã có một đi trong một sân chơi và điều này có lẽ là những gì bạn đang tìm kiếm :)
protocol Addable {
func +(lhs: Self, rhs: Self) -> Self
}
func add<T: Addable>(num1: T, _ num2: T) -> T {
return num1 + num2
}
extension Int: Addable {}
extension Double: Addable {}
extension Float: Addable {}
add(3, 0.2)
Hãy cho tôi biết nếu bạn cần bất kỳ của các khái niệm chứng minh ở đây giải thích
Nguồn
2015-12-07 03:01:09
Và câu hỏi là ...? –
Nếu loại không phải là số? Điều gì hoang dã xảy ra? –
zaph
So sánh http://stackoverflow.com/questions/25575513/what-protocol-should-be-adopted-by-a-type-for-a-generic-function-to-take-any-num –