Initializerswift 6.0.1Swift
init(describing:)
Creates a string representing the given value.
init<Subject>(describing instance: Subject) where Subject : CustomStringConvertible
Use this initializer to convert an instance of any type to its preferred representation as a String
instance. The initializer creates the string representation of instance
in one of the following ways, depending on its protocol conformance:
If
instance
conforms to theTextOutputStreamable
protocol, the result is obtained by callinginstance.write(to: s)
on an empty strings
.If
instance
conforms to theCustomStringConvertible
protocol, the result isinstance.description
.If
instance
conforms to theCustomDebugStringConvertible
protocol, the result isinstance.debugDescription
.An unspecified result is supplied automatically by the Swift standard library.
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(String(describing: p))
// Prints "Point(x: 21, y: 30)"
After adding CustomStringConvertible
conformance by implementing the description
property, Point
provides its own custom representation.
extension Point: CustomStringConvertible {
var description: String {
return "(\(x), \(y))"
}
}
print(String(describing: p))
// Prints "(21, 30)"
Other members in extension
Types
struct Index
A position of a character or code unit in a string.
struct Iterator
struct UTF16View
A view of a string’s contents as a collection of UTF-16 code units.
struct UTF8View
A view of a string’s contents as a collection of UTF-8 code units.
struct UnicodeScalarView
A view of a string’s contents as a collection of Unicode scalar values.
Typealiases
typealias Element
typealias SubSequence
typealias UnicodeScalarIndex
The index type for a string’s
unicodeScalars
view.
Show obsolete interfaces (2)
Hide obsolete interfaces
typealias CharacterView
A view of a string’s contents as a collection of characters.
typealias IndexDistance
A type that represents the number of steps between two
String.Index
values, where one value is reachable from the other.
Type members
init(
) Creates an empty string.
init(String.UnicodeScalarView
) Creates a string corresponding to the given collection of Unicode scalars.
init(String.UTF8View
) Creates a string corresponding to the given sequence of UTF-8 code units.
init(String.UTF16View
) Creates a string corresponding to the given sequence of UTF-16 code units.
init(Character
) Creates a string containing the given character.
init?(Substring.UTF8View
) Creates a String having the given content.
init?(Substring.UTF16View
) Creates a String having the given content.
init(Substring.UnicodeScalarView
) Creates a String having the given content.
init(Substring
) Creates a new string from the given substring.
init(Unicode.Scalar
) init<S>(S
) Creates a new string containing the characters in the given sequence.
init<S>(S
) Creates a new string containing the characters in the given sequence.
init<T>(T
) Creates an instance from the description of a given
LosslessStringConvertible
instance.init<T>(T, radix: Int, uppercase: Bool
) Creates a string representing the given value in base 10, or some other specified base.
init(cString: UnsafePointer<CChar>
) Creates a new string by copying the null-terminated UTF-8 data referenced by the given pointer.
init(cString: UnsafePointer<UInt8>
) Creates a new string by copying the null-terminated UTF-8 data referenced by the given pointer.
init?<T>(codingKey: T
) init<C, Encoding>(decoding: C, as: Encoding.Type
) init<Encoding>(decodingCString: UnsafePointer<Encoding.CodeUnit>, as: Encoding.Type
) Creates a new string by copying the null-terminated sequence of code units referenced by the given pointer.
init<Subject>(describing: Subject
) Creates a string representing the given value.
init<Subject>(describing: Subject
) Creates a string representing the given value.
init<Subject>(describing: Subject
) Creates a string representing the given value.
init(from: any Decoder
) throws init<Subject>(reflecting: Subject
) Creates a string with a detailed representation of the given value, suitable for debugging.
init(repeating: String, count: Int
) Creates a new string representing the given string repeated the specified number of times.
init(repeating: Character, count: Int
) Creates a string representing the given character repeated the specified number of times.
init(stringInterpolation: DefaultStringInterpolation
) Creates a new instance from an interpolated string literal.
init(stringLiteral: String
) Creates an instance initialized to the given string value.
init(unsafeUninitializedCapacity: Int, initializingUTF8With: (UnsafeMutableBufferPointer<UInt8>) throws -> Int
) rethrows Creates a new string with the specified capacity in UTF-8 code units, and then calls the given closure with a buffer covering the string’s uninitialized memory.
init?<Encoding>(validating: some Sequence, as: Encoding.Type
) Creates a new string by copying and validating the sequence of code units passed in, according to the specified encoding.
init?<Encoding>(validating: some Sequence<Int8>, as: Encoding.Type
) Creates a new string by copying and validating the sequence of code units passed in, according to the specified encoding.
init?(validatingCString: UnsafePointer<CChar>
) Creates a new string by copying and validating the null-terminated UTF-8 data referenced by the given pointer.
static func decodeCString<Encoding>(UnsafePointer<Encoding.CodeUnit>?, as: Encoding.Type, repairingInvalidCodeUnits: Bool
) -> (result: String, repairsMade: Bool)? Creates a new string by copying the null-terminated data referenced by the given pointer using the specified encoding.
static func decodeCString<Encoding>([Encoding.CodeUnit], as: Encoding.Type, repairingInvalidCodeUnits: Bool
) -> (result: String, repairsMade: Bool)? static func + (lhs: String, rhs: String
) -> String static func += (lhs: inout String, rhs: String
) static func < (lhs: String, rhs: String
) -> Bool static func == (lhs: String, rhs: String
) -> Bool static func ~= (lhs: String, rhs: Substring
) -> Bool
Show obsolete interfaces (17)
Hide obsolete interfaces
init(cString: String
) init(cString: [CChar]
) Creates a new string by copying the null-terminated UTF-8 data referenced by the given array.
init(cString: [UInt8]
) Creates a new string by copying the null-terminated UTF-8 data referenced by the given array.
init(cString: inout CChar
) init(cString: inout UInt8
) init<Encoding>(decodingCString: String, as: Encoding.Type
) init<Encoding>(decodingCString: inout Encoding.CodeUnit, as: Encoding.Type
) init<Encoding>(decodingCString: [Encoding.CodeUnit], as: Encoding.Type
) Creates a new string by copying the null-terminated sequence of code units referenced by the given array.
init?(validatingCString: String
) init?(validatingCString: [CChar]
) Creates a new string by copying and validating the null-terminated UTF-8 data referenced by the given array.
init?(validatingCString: inout CChar
) init?(validatingUTF8: UnsafePointer<CChar>
) Creates a new string by copying and validating the null-terminated UTF-8 data referenced by the given pointer.
init?(validatingUTF8: String
) init?(validatingUTF8: [CChar]
) Creates a new string by copying and validating the null-terminated UTF-8 data referenced by the given array.
init?(validatingUTF8: inout CChar
) static func decodeCString<Encoding>(inout Encoding.CodeUnit, as: Encoding.Type, repairingInvalidCodeUnits: Bool
) -> (result: String, repairsMade: Bool)? static func decodeCString<Encoding>(String, as: Encoding.Type, repairingInvalidCodeUnits: Bool
) -> (result: String, repairsMade: Bool)?
Instance members
var codingKey: any CodingKey
var count: Int
The number of characters in a string.
var customMirror: Mirror
A mirror that reflects the
String
instance.var debugDescription: String
A representation of the string that is suitable for debugging.
var description: String
The value of this string.
var endIndex: String.Index
A string’s “past the end” position—that is, the position one greater than the last valid subscript argument.
var isContiguousUTF8: Bool
Returns whether this string is capable of providing access to validly-encoded UTF-8 contents in contiguous memory in O(1) time.
var isEmpty: Bool
A Boolean value indicating whether a string has no characters.
var startIndex: String.Index
The position of the first character in a nonempty string.
var unicodeScalars: String.UnicodeScalarView
The string’s value represented as a collection of Unicode scalar values.
var utf16: String.UTF16View
A UTF-16 encoding of
self
.var utf8: String.UTF8View
A UTF-8 encoding of
self
.var utf8CString: ContiguousArray<CChar>
A contiguously stored null-terminated UTF-8 representation of the string.
subscript(String.Index
) -> Character Accesses the character at the given position.
subscript(Range<String.Index>
) -> Substring func append(Character
) Appends the given character to the string.
func append(String
) Appends the given string to this string.
func append(contentsOf: String
) func append(contentsOf: Substring
) func append<S>(contentsOf: S
) Appends the characters in the given sequence to the string.
func distance(from: String.Index, to: String.Index
) -> Int Returns the distance between two indices.
func encode(to: any Encoder
) throws Encodes this value into the given encoder.
func hasPrefix(String
) -> Bool func hasSuffix(String
) -> Bool func hash(into: inout Hasher
) Hashes the essential components of this value by feeding them into the given hasher.
func index(String.Index, offsetBy: Int
) -> String.Index Returns an index that is the specified distance from the given index.
func index(String.Index, offsetBy: Int, limitedBy: String.Index
) -> String.Index? Returns an index that is the specified distance from the given index, unless that distance is beyond a given limiting index.
func index(after: String.Index
) -> String.Index Returns the position immediately after the given index.
func index(before: String.Index
) -> String.Index func insert(Character, at: String.Index
) Inserts a new character at the specified position.
func insert<S>(contentsOf: S, at: String.Index
) Inserts a collection of characters at the specified position.
func lowercased(
) -> String Returns a lowercase version of the string.
func makeContiguousUTF8(
) If this string is not contiguous, make it so. If this mutates the string, it will invalidate any pre-existing indices.
func makeIterator(
) -> String.Iterator func max<T>(T, T
) -> T func min<T>(T, T
) -> T func remove(at: String.Index
) -> Character Removes and returns the character at the specified position.
func removeAll(keepingCapacity: Bool
) Replaces this string with the empty string.
func removeSubrange(Range<String.Index>
) Removes the characters in the given range.
func replaceSubrange<C>(Range<String.Index>, with: C
) Replaces the text within the specified bounds with the given characters.
func reserveCapacity(Int
) Reserves enough space in the string’s underlying storage to store the specified number of ASCII characters.
func uppercased(
) -> String Returns an uppercase version of the string.
func withCString<Result>((UnsafePointer<Int8>) throws -> Result
) rethrows -> Result func withCString<Result, TargetEncoding>(encodedAs: TargetEncoding.Type, (UnsafePointer<TargetEncoding.CodeUnit>) throws -> Result
) rethrows -> Result func withUTF8<R>((UnsafeBufferPointer<UInt8>) throws -> R
) rethrows -> R Runs
body
over the content of this string in contiguous memory. If this string is not contiguous, this will first make it contiguous, which will also speed up subsequent access. If this mutates the string, it will invalidate any pre-existing indices.func write(String
) Appends the given string to this string.
func write<Target>(to: inout Target
) Writes the string into the given output stream.
Show obsolete interfaces (3)
Hide obsolete interfaces
var characters: String
A view of the string’s contents as a collection of characters.
var customPlaygroundQuickLook: _PlaygroundQuickLook
A custom playground Quick Look for the
String
instance.func withMutableCharacters<R>((inout String) -> R
) -> R Applies the given closure to a mutable view of the string’s characters.