Swift中的可变初始值设定项出了什么问题?
我用一个初始值设定项创建了一个类,该初始值设定项接受一个可变参数,但它不执行它应该执行的操作。我创建了一个名为start的变量,它是对storted属性UntereseElement的引用。但不知何故,它保持“零”,即使我给它分配了不同的值。这是怎么回事Swift中的可变初始值设定项出了什么问题?,swift,generics,initializer,variadic,Swift,Generics,Initializer,Variadic,我用一个初始值设定项创建了一个类,该初始值设定项接受一个可变参数,但它不执行它应该执行的操作。我创建了一个名为start的变量,它是对storted属性UntereseElement的引用。但不知何故,它保持“零”,即使我给它分配了不同的值。这是怎么回事 class Element<T> { var content: T var next: Element<T>? init (_ content: T) { self.conten
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)")
类元素{
var含量:T
下一步:元素?
初始化(uu内容:T){
self.content=inhalt
}
}
类链接列表{
变量:元素?
var isEmpty:布尔{
返回下限==零
}
init(第一个元素:T){
下元素=元素(第一个元素)
}
init(u元素:T…){
var start=LOWESTELENT
对于元素中的元素{
开始=元素(元素)
开始=开始!。下一步
}
}
}
var list1=LinkedList(5,91,20,3,60)
打印(\(列表1.lowstelement?.content))
您的迭代中有一个错误。您正在将所有值分配给start
,但start
从未存储
设置lowstelement
并保留一个指向当前元素的临时指针
,以便可以将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)")
类元素{
var含量:T
下一步:元素?
初始化(uu内容:T){
self.content=内容
}
}
类链接列表{
变量:元素?
var isEmpty:布尔{
返回下限==零
}
init(第一个元素:T){
下元素=元素(第一个元素)
}
init(u元素:T…){
电流:元素!
对于元素中的元素{
如果下限==零{
下部构件=构件(构件)
电流=下限值!
}否则{
让下一步=元素(元素)
current.next=下一个
当前=下一个
}
}
}
}
var list1=LinkedList(5,91,20,3,60)
打印(\(列表1.lowstelement?.content))