Protocolswift 6.0.1Swift
CustomStringConvertible
A type with a customized textual representation.
protocol CustomStringConvertible
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 CustomStringConvertible
, the String(describing:)
initializer and the print(_:)
function use the instance’s custom description
property.
Accessing a type’s description
property directly or using CustomStringConvertible
as a generic constraint is discouraged.
Conforming to the CustomStringConvertible Protocol
Add CustomStringConvertible
conformance to your custom types by defining a description
property.
For example, this custom Point
struct uses the default representation supplied by the standard library:
struct Point {
let x: Int, y: Int
}
let p = Point(x: 21, y: 30)
print(p)
// Prints "Point(x: 21, y: 30)"
After implementing the description
property and declaring CustomStringConvertible
conformance, the Point
type provides its own custom representation.
extension Point: CustomStringConvertible {
var description: String {
return "(\(x), \(y))"
}
}
print(p)
// Prints "(21, 30)"
Requirements
Instance members
var description: String
A textual representation of this instance.
Citizens in Swift
Subtypes
protocol BinaryInteger
An integer type with a binary representation.
protocol CodingKey
A type that can be used as a key for encoding and decoding.
protocol FixedWidthInteger
An integer type that uses a fixed size for every instance.
protocol LosslessStringConvertible
A type that can be represented as a string in a lossless, unambiguous way.
protocol SIMD<Scalar>
A SIMD vector of a fixed number of elements.
protocol SignedInteger
An integer type that can represent both positive and negative values.
protocol StringProtocol
A type that can represent a string as a collection of characters.
protocol UnsignedInteger
An integer type that can represent only nonnegative values.
Available in _RegexParser
Instance members
Available in FoundationEssentials
Subtypes
Available in Foundation
Subtypes
protocol ReferenceConvertible
Decorates types which are backed by a Foundation reference type.
Extension in Crypto
Subtypes
protocol Digest
A type that represents the output of a hash.
protocol MessageAuthenticationCode
A type that represents a message authentication code.
Extension in Vapor
Subtypes
protocol DebuggableError
Debuggable
provides an interface that allows a type to be more easily debugged in the case of an error.