使用协议进行Swift类型推断

如果您来自Objective-c世界,那么您会欣赏Swift类型推断的,其中编译器会在编译时自动确定实例的类型,而无需显式编写类型。

这并不新鲜。 许多其他语言(例如C#和Kotlin)都具有此功能。 Swift的出色之处在于,您可以为自定义类获得相同的类型推断,从而部分地使您的代码更简洁。

制作URL的一种非常常见的方法是从字符串初始化。

符合ExpressibleByStringLiteral协议,该协议定义了具有关联类型的初始化程序。 我们可以扩展URL并确认协议。

在这里,您拥有它。 使用类型推断定义的URL对象实例。

结论

如您所见,进行自定义类型推断非常容易。 Swift几乎没有其他协议集合,可选协议等。

ExpressibleByArrayLiteral

ExpressibleByDictionaryLiteral

ExpressibleByIntegerLiteral

ExpressibleByFloatLiteral

ExpressibleByBooleanLiteral

ExpressibleByNilLiteral

ExpressibleByStringLiteral

ExpressibleByExtendedGraphemeClusterLiteral

ExpressibleByUnicodeScalarLiteral