このコードで何が問題になっていますか? REPLとコンパイラ(セグメンテーションフォールト11)の両方がクラッシュします... これは簡単なジェネリックスの例であると考えられています。クラッシュは、ArrayLiteralConvertibleの適合性を追加する拡張機能のために見えます。基本型Listはそれ自身でうまく動作します。迅速なクラッシュ(ジェネリックに関連する?)
struct List<Item> {
private var items: [Item] = []
var count: Int {
return items.count
}
func item(atIndex index: Int) -> Item? {
if index < count {
return items[index]
} else {
return nil
}
}
mutating func add(item: Item) {
items.append(item)
}
mutating func remove(atIndex index: Int) {
if index < count {
items.removeAtIndex(index)
}
}
}
extension List: ArrayLiteralConvertible {
typealias Element = Item
init(arrayLiteral elements: Item...) {
items = elements
}
}
var numbers: List<Int> = [1, 2, 3]
合意して、私は拡張が問題だと思います。 ArrayLiteralConvertibleの適合性をメインの構造体定義に移動すると、動作するようです。 – jtbandes