Swift 4 , . . . , , , Equatable
, . , , . " ".
, , , , . , . , - " CGFloat UIEdgeInsets", Swift. "" [T]
, "OR" enum
(Swift " " ). , :
enum Element {
case scalar(CGFloat)
case insets(UIEdgeInsets)
}
let list: [Element]
" , ". , , " , ", Swift NSValue
( NSNumber
):
class Things {
var array: [NSValue] = []
func append(_ value: CGFloat) {
array.append(NSNumber(value: Double(value)))
}
func append(_ insets: UIEdgeInsets) {
array.append(NSValue(uiEdgeInsets: insets))
}
}
let list = Things()
let f: CGFloat = 1.23
let edge = UIEdgeInsets()
list.append(f)
list.append(edge)
list.array[0] == list.array[0]
list.array[0] == list.array[1]