Protocol

ExpressibleByStringInterpolation

A type that can be initialized by string interpolation with a string literal that includes expressions. いくらかの式を含むある文字列リテラルを使う文字列補間によって初期化できる型。

Declaration 宣言

protocol ExpressibleByStringInterpolation

Overview 概要

Use string interpolation to include one or more expressions in a string literal, wrapped in a set of parentheses and prefixed by a backslash. For example: 文字列補間を使って文字列リテラルの中に1つ以上の式を、一組の丸括弧に包んでひとつのバックスラッシュを前に置いて、含めてください。例えば:


let price = 2
let number = 3
let message = "One cookie: $\(price), \(number) cookies: $\(price * number)."
print(message)
// Prints "One cookie: $2, 3 cookies: $6."

Extending the Default Interpolation Behavior 省略時の補間挙動を拡張する

Add new interpolation behavior to existing types by extending DefaultStringInterpolation, the type that implements interpolation for types like String and Substring, to add an overload of appendInterpolation(_:) with their new behavior. 新しい補間挙動を既存の型それらに追加することをDefaultStringInterpolationStringおよびSubstringのような型に補間を実装する型、を拡張してそれらの新しい挙動をもつappendInterpolation(_:)のオーバーロードを加えることで行います。

For more information, see the DefaultStringInterpolation and StringInterpolationProtocol documentation. さらなる情報として、DefaultStringInterpolationStringInterpolationProtocol文書化を見てください。

Creating a Type That Supports the Default String Interpolation 省略時の文字列補間をサポートする型を作成する

To create a new type that supports string literals and interpolation, but that doesn’t need any custom behavior, conform the type to ExpressibleByStringInterpolation and implement the init(stringLiteral: String) initializer declared by the ExpressibleByStringLiteral protocol. Swift will automatically use DefaultStringInterpolation as the interpolation type and provide an implementation for init(stringInterpolation:) that passes the interpolated literal’s contents to init(stringLiteral:), so you don’t need to implement anything specific to this protocol. 文字列リテラルと補間をサポートする、しかし何らかのあつらえの挙動を必要としない新しい型を作成するには、その型をExpressibleByStringInterpolationに準拠させて、そしてExpressibleByStringLiteralプロトコルによって宣言されるinit(stringLiteral: String)イニシャライザを実装してください。Swiftは、自動的にDefaultStringInterpolationを補間型として使います、そしてinit(stringInterpolation:)に対する実装を提供し、それは補間されたリテラルの内容をinit(stringLiteral:)に渡します、それであなたはこのプロトコルに特有な何かを実装する必要はありません。

Creating a Type That Supports Custom String Interpolation あつらえの文字列補間をサボートする型を作成する

If you want a conforming type to differentiate between literal and interpolated segments, restrict the types that can be interpolated, support different interpolators from the ones on String, or avoid constructing a String containing the data, the type must specify a custom StringInterpolation associated type. This type must conform to StringInterpolationProtocol and have a matching StringLiteralType. あなたがある準拠している型にリテラルと補間分節の間の区別がついて欲しいならば、補間されることが可能な型を制約して、Stringでのものと異なる補間をサポートしてください、またはデータを含んでいるStringを組み立てることを防止してください、その型はあるあつらえのStringInterpolation関連型を指定しなければなりません。この型は、StringInterpolationProtocolに準拠する、そして適合するStringLiteralTypeを持つ必要があります。

For more information, see the StringInterpolationProtocol documentation. さらなる情報として、StringInterpolationProtocolの文書化を見てください。

Topics 話題

Associated Types さまざまな関連型

Initializers イニシャライザ

Relationships 関係

Inherits From 継承元

Inherited By 継承される先

See Also 参照

String Literals 文字列リテラル