A type with a customized textual representation.
Types that conform to the
CustomStringConvertible protocol can provide their own representation to be used when converting an instance to a string. The
String(describing:) initializer is the preferred way to convert an instance of any type to a string. If the passed instance conforms to
String(describing:) initializer and the
print(_:) function use the instance’s custom
Accessing a type’s
description property directly or using
CustomStringConvertible as a generic constraint is discouraged.
Conforming to the CustomStringConvertible Protocol
CustomStringConvertible conformance to your custom types by defining a
For example, this custom
Point struct uses the default representation supplied by the standard library:
After implementing the
description property and declaring
CustomStringConvertible conformance, the
Point type provides its own custom representation.