Structure

DefaultStringInterpolation

Represents a string literal with interpolations while it is being built up. ある文字列リテラルでいくらかの補間をもつものを、それが作り上げられている間に表します。

Declaration 宣言

@frozen struct DefaultStringInterpolation

Overview 概要

Do not create an instance of this type directly. It is used by the compiler when you create a string using string interpolation. Instead, use string interpolation to create a new string by including values, literals, variables, or expressions enclosed in parentheses, prefixed by a backslash (\()). この型のインスタンスを直接に作成しないでください。それはあなたが文字列補間を使って文字列を作成する時にコンパイラによって使われます。代わりに、文字列補間を使って、バックスラッシュ\()を前に置いた丸括弧に囲まれた値、リテラル、変数、または式を含めることで、新しい文字列を作成してください。


let price = 2
let number = 3
let message = """
              If one cookie costs \(price) dollars, \
              \(number) cookies cost \(price * number) dollars.
              """
print(message)
// Prints "If one cookie costs 2 dollars, 3 cookies cost 6 dollars."

When implementing an ExpressibleByStringInterpolation conformance, set the StringInterpolation associated type to DefaultStringInterpolation to get the same interpolation behavior as Swift’s built-in String type and construct a String with the results. If you don’t want the default behavior or don’t want to construct a String, use a custom type conforming to StringInterpolationProtocol instead. ExpressibleByStringInterpolation準拠を実装する場合は、StringInterpolation関連型をDefaultStringInterpolationに設定することで、Swiftの組込みString型と同じ補間挙動を取得してください、そしてあるStringをその結果で組み立ててください。あなたが初期状態の挙動を望まないまたはStringを組み立てることを望まないならば、代わりにStringInterpolationProtocolに準拠するあるあつらえの型を使ってください。

Extending default string interpolation behavior 省略時の文字列補間挙動を拡張する

Code outside the standard library can extend string interpolation on String and many other common types by extending DefaultStringInterpolation and adding an appendInterpolation(...) method. For example: 標準ライブラリの外側のコードは、文字列補間をStringおよび多くの他の一般の型の上で拡張することが、DefaultStringInterpolationを拡張することそしてappendInterpolation(...)メソッドを加えることで可能です。例えば:


extension DefaultStringInterpolation {
    fileprivate mutating func appendInterpolation(
             escaped value: String, asASCII forceASCII: Bool = false) {
        for char in value.unicodeScalars {
            appendInterpolation(char.escaped(asASCII: forceASCII))
        }
    }
}


print("Escaped string: \(escaped: string)")

See StringInterpolationProtocol for details on appendInterpolation methods. StringInterpolationProtocolappendInterpolationメソッドに関する詳細として見てください。

DefaultStringInterpolation extensions should add only mutating members and should not copy self or capture it in an escaping closure. DefaultStringInterpolation拡張は、mutatingメンバだけを加えるべきです、そして脱出クロージャにおいてselfをコピーまたはそれをキャプチャすべきではありません。

Topics 話題

Type Aliases 型エイリアス

Initializers イニシャライザ

Instance Properties 様々なインスタンスプロパティ

Instance Methods インスタンスメソッド

Relationships 関係

See Also 参照

String Literals 文字列リテラル