gpt4 book ai didi

Swift 崩溃(与泛型有关?)

转载 作者:搜寻专家 更新时间:2023-11-01 07:23:27 26 4
gpt4 key购买 nike

这段代码有什么问题?它使 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]

最佳答案

这似乎是一个错误,已在 https://bugs.swift.org/browse/SR-493 提交

作为变通方法,您可以将 init(arrayLiteral:)ArrayLiteralConvertible 一致性移动到主结构定义中,这似乎可以避免崩溃。

关于Swift 崩溃(与泛型有关?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37531852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com