我创建了一个带有初始化程序的类,它接受一个可变参数,但它没有做它应该做的事情。我创建了一个名为start的变量,它是对storted属性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)")
答案 0 :(得分:0)
您的迭代中存在错误。您要将所有值分配给start
,但永远不会存储start
。
设置lowestElement
并保留指向当前Element
的临时指针,以便您可以为next
属性分配下一个当前Element
。
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)")