У меня есть этот пример, и я хочу работать с динамическим c целочисленным типом без знака в моей структуре.
struct SomeStruct {
var value: UnsignedInteger
var sizeOf: Int {
return sizeof(value)
}
func sizeof <T> (_ : T) -> Int {
return (MemoryLayout<T>.size)
}
init(type: Int) {
switch type {
case 1:
self.value = UInt8(1)
case 2:
self.value = UInt16(1)
case 3:
self.value = UInt32(1)
case 4:
self.value = UInt64(1)
default:
self.value = UInt8(1)
}
}
}
let struct16 = SomeStruct(type: 2)
let struct64 = SomeStruct(type: 4)
print(struct16.sizeOf)
print(struct64.sizeOf)
, но этот код не работает, он не работает с ошибкой компиляции. Протокол 'UnsignedInteger 'может использоваться только как обобщенное c ограничение, потому что оно имеет Self или связанные требования типа