Каждый раз, когда я добавляю новый узел в список быстрых ссылок, создается новый список ссылок, если список ссылок является структурой. Это плохо для производительности?
Было бы лучше, если бы Linkedlist был классом, а не структурой?
Example
public class Node<Value> {
public var value: Value
public var next: Node?
public init(value: Value, next: Node? = nil) {
self.value = value
self.next = next
}
}
public struct LinkedList<Value> {
public var head: Node<Value>?
public var tail: Node<Value>?
public init() {}
public var isEmpty: Bool {
return head == nil
}
public mutating func push(_ value: Value) {
head = Node(value: value, next: head)
if tail == nil {
tail = head
}
}
public mutating func append(_ value: Value) {
guard !isEmpty else {
push(value)
return
}
}
}
var list = LinkedList<Int>()
list.push(3)
print(Unmanaged<AnyObject>.passUnretained(list as AnyObject).toOpaque())
list.push(2)
print(Unmanaged<AnyObject>.passUnretained(list as AnyObject).toOpaque())
Output
0x000060c0002415f0
0x000060c0002416e0