对于协议,要求实例变量符合协议;而不是具有特定类型

Requiring, for a protocol, that an instance variable conform to a protocol ; rather than have a specific type

作为自定义 Coder 的一部分,我以完全相同的方式转换 FloatDouble :

static func encode(_ value : Double) -> Data {
    withUnsafeBytes(of: value.bitPattern.bigEndian) { Data([=10=]) }
}

static func encode(_ value : Float) -> Data {
    withUnsafeBytes(of: value.bitPattern.bigEndian) { Data([=10=]) }
}

我想我可以要求 value 符合协议,因为 FloatingPoint 协议不保证 bitPattern 的存在,我想我会我自己的:

protocol CompatibleFloatingPoint {
    var bitPattern : FixedWidthInteger { get }
}

然而,这会产生以下错误: Protocol 'FixedWidthInteger' can only be used as a generic constraint because it has Self or associated type requirements

但是,我无法用特定类型替换 FixedWidthInteger,因为 Double.bitPatternUInt64Float.bitPatternUInt32

要求 bitPattern 符合 FixedWidthInteger 协议而不强制其具有特定类型的正确语法是什么?

您要查找的是关联类型。这正是您所描述的(所需类型符合协议而不是该协议的存在):

protocol CompatibleFloatingPoint {
    associatedtype BitPattern: FixedWidthInteger
    var bitPattern : BitPattern { get }
}

extension Float: CompatibleFloatingPoint {}
extension Double: CompatibleFloatingPoint {}

有关详细信息,请参阅 Swift 编程语言中的 Associated Types