Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift中的可变初始值设定项出了什么问题?_Swift_Generics_Initializer_Variadic - Fatal编程技术网

Swift中的可变初始值设定项出了什么问题?

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

我用一个初始值设定项创建了一个类,该初始值设定项接受一个可变参数,但它不执行它应该执行的操作。我创建了一个名为start的变量,它是对storted属性UntereseElement的引用。但不知何故,它保持“零”,即使我给它分配了不同的值。这是怎么回事

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))