我明白那个
self.something
这是该类的成员值。
但什么是
something.self
考虑类似的代码
JSONDecoder().decode(what, from: myJSONData)
我有什么就去哪里what
?我们必须告诉解码器期望解码什么类型的东西。基本上,what
is the 类型名称— 符合 Decodable 的类、结构或枚举的名称。
但是如何说出类型的名称呢?假设您希望解码的类型是 String。那你在这里说什么?
JSONDecoder().decode(String, from: myJSONData) // error
不,你不能这样突然说出类型的名称。您可以这样做:
JSONDecoder().decode(String.self, from: myJSONData)
当你说的时候你真正传递的是什么String.self
is the metatype对于字符串。这个示例正是它的用途,即当您需要传递类型作为参数时。
该方法的声明通过使用来表明这一点.Type
:
func decode<T>(_ type: T.Type, from data: Data) throws -> T where T : Decodable
表达方式T.Type
告诉您调用此方法时传递的内容应该是Something.self
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)