swift 2では配列型を拡張したいと思います。私はJSONDecodable
プロトコルを持っています。私がコンパイラに言いたいのは、Array
をJSONDecodable
に適合させる場合、要素がArray
の場合はJSONDecodable
です。ここでは、コードは次のとおりです。制約付きの配列の拡張は継承句を持つことができません - swift 2
public protocol JSONDecodable {
static func createFromJSON(json: [String: AnyObject]) throws -> Self
}
extension Array: JSONDecodable where Element: JSONDecodable {
}
しかし、コンパイラはエラーを与える:「制約付きタイプのアレイの拡張が継承句を持つことができません」
をだから、この動作の種類を達成するために他の方法がありますか?
protocol X {
var xxx: String { get }
}
// This is a wrapper struct
struct XArray: X {
let array: Array<X>
var xxx: String {
return "[\(array.map({ $0.xxx }).joinWithSeparator(", "))]"
}
}
// Just for this demo
extension String: X {
var xxx: String {
return "x\(self)"
}
}
let xs = XArray(array: ["a", "b", "c"])
print(xs.array) // ["a", "b", "c"]
print(xs.xxx) // [xa, xb, xc]
を私が見つけたthis..twitter.com/jadengeller/status/644735717814349824「ラッパー構造体を書く」という意味は何ですか? – Austin