サンプルコードで知らない関数の書き方とプロトコルEquatableに悩まされています。なぜfuncの後の本来関数名を記述する場所に比較演算子である==があるのでしょうか。これでは関数を呼び出せない気がします……。
またEquatableとはどういう意味のプロトコルなのでしょうか?
protocol VectorType {
typealias Element
var x:Element { get set }
var y:Element { get set }
}
struct Vector<T>: VectorType {
typealias Element = T
var x, y:Element
}
extension VectorType where Self: Equatable, Element:Equatable{}
// 問題の関数⤵︎
func ==<T:VectorType where T.Element: Equatable>(lhs:T, rhs:T) -> Bool {
return lhs.x == rhs.x && lhs.y == rhs.y
}
let a = Vector<Double>(x:16.0, y:5.0)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/07 11:03