如何使元组类型符合swift中的协议? func-foo(val:T),其中T.Element:Codable{} foo(val:[“你好”,“你好])//好的 //类型“(键:字符串,值:字符串)”不能与“可解码”一致;只有结构/枚举/类类型才能符合协议 foo(val:[“hello”:“hi”])//错误

如何使元组类型符合swift中的协议? func-foo(val:T),其中T.Element:Codable{} foo(val:[“你好”,“你好])//好的 //类型“(键:字符串,值:字符串)”不能与“可解码”一致;只有结构/枚举/类类型才能符合协议 foo(val:[“hello”:“hi”])//错误,swift,generics,Swift,Generics,我知道字典的关联类型,元素,是(key:key,value:value) 但是我想知道如何使(key:String,value:String)的元组的元素符合的可编码性?你是自己写的还是没有控制权?另外,您能展示一下foo的功能吗?这将告诉我们为什么T.Element需要是Codable。是的,没有控件,这只是我尝试编写支持其元素为元组(键:键,值:值)的集合的一个示例。我想让这个元素符合Codable你能展示一下foo的功能吗?理想情况下,显示其实现。在那里传递字典可能没有意义。回答您的问题:

我知道字典的关联类型,
元素
,是
(key:key,value:value)


但是我想知道如何使
(key:String,value:String)
的元组的
元素
符合
的可编码性

你是自己写的还是没有控制权?另外,您能展示一下
foo
的功能吗?这将告诉我们为什么
T.Element
需要是
Codable
。是的,没有控件,这只是我尝试编写支持其
元素
元组(键:键,值:值)
的集合的一个示例。我想让这个
元素
符合
Codable
你能展示一下
foo
的功能吗?理想情况下,显示其实现。在那里传递字典可能没有意义。回答您的问题:不可能将非命名类型(如元组)与协议一致。
func foo<T:Collection>(val: T) where T.Element: Codable {}

foo(val: ["hello", "hi"]) // ok

// Type '(key: String, value: String)' cannot conform to 'Decodable'; only struct/enum/class types can conform to protocols
foo(val: ["hello": "hi"]) // error