gpt4 book ai didi

swift - 我的 Swift 中的可变参数初始值设定项出了什么问题?

转载 作者:行者123 更新时间:2023-11-30 13:43:34 25 4
gpt4 key购买 nike

我创建了一个带有初始化程序的类,该初始化程序采用可变参数,但它没有执行它应该执行的操作。我创建了一个名为 start 的变量,它是对存储属性 unteresElement 的引用。但不知怎的,即使我给它分配了不同的值,它仍然是“零”。这是怎么回事?

class Element<T> {
var content: T
var next: Element<T>?

init (_ content: T) {
self.content = inhalt
}
}

class LinkedList<T> {
var lowestElement: Element<T>?

var isEmpty: Bool {
return lowestElement == nil
}

init (firstElement: T) {
lowestElement = Element (firstElement)
}

init (_ elements: T...) {
var start = lowestElement

for element in elements {
start = Element (element)
start = start!.next
}
}
}

var list1 = LinkedList (5, 91, 20, 3, 60)

print ("\(liste1.lowestElement?.content)")

最佳答案

您的迭代中存在错误。您将所有值分配给 start,但 start 永远不会存储。

设置 lowestElement 并保留指向当前 Element 的临时指针,以便您可以将下一个当前 分配给 next 属性元素.

class Element<T> {

var content: T
var next: Element<T>?

init (_ content: T) {
self.content = content
}

}

class LinkedList<T> {

var lowestElement: Element<T>?

var isEmpty: Bool {
return lowestElement == nil
}

init (firstElement: T) {

lowestElement = Element(firstElement)

}

init (_ elements: T...) {

var current : Element<T>!

for element in elements {

if lowestElement == nil {
lowestElement = Element(element)
current = lowestElement!
} else {
let next = Element(element)
current.next = next
current = next
}
}
}
}

var list1 = LinkedList (5, 91, 20, 3, 60)

print ("\(list1.lowestElement?.content)")

关于swift - 我的 Swift 中的可变参数初始值设定项出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35267749/

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