case some(Wrapped)
Wrapped
.
ある値の存在、Wrapped
として格納されます。
init(Wrapped)
nil
, the absence of a value.
ラップされた値または、値の不在であるnil
、どちらかを表すある型。
Availability
Technology
@frozen enum Optional<Wrapped>
You use the Optional
type whenever you use optional values, even if you never type the word Optional
. Swift’s type system usually shows the wrapped type’s name with a trailing question mark (?
) instead of showing the full type name. For example, if a variable has the type Int?
, that’s just another way of writing Optional<Int>
. The shortened form is preferred for ease of reading and writing code.
あなたはOptional
型を、あなたがオプショナル値を使う時はいつでも使います、たとえあなたが単語Optional
を決してタイプしないとしてもです。Swiftのもつ型システムは通常、ラップされた型のもつ名前を後に続く疑問符(?
)で示します、完全な型の名前を示す代わりに。例えば、ある変数が型Int?
を持つとすれば、それはOptional<Int>
を記述することのありきたりのやり方です。この短縮された形式は、コードの読み書きの容易さのためにより好ましいものです。
The types of short
and long
in the following code sample are the same:
以下のコード例におけるshort
とlong
の型は、同じです:
The Optional
type is an enumeration with two cases. Optional
is equivalent to the nil
literal. Optional
stores a wrapped value. For example:
Optional
型は、2つのケース節を持つ列挙です。Optional
は、nil
リテラルに等しいです。Optional
は、あるラップされた値を格納します。例えば:
You must unwrap the value of an Optional
instance before you can use it in many contexts. Because Swift provides several ways to safely unwrap optional values, you can choose the one that helps you write clear, concise code.
あなたは、あなたがそれを多くの文脈において使う前に、Optional
インスタンスの値をアンラップしなければなりません。Swiftは安全にオプショナル値をアンラップするために複数の方法を提供するので、あなたは明快な、簡潔なコードを記述する助けとしてその1つを選ぶことができます。
The following examples use this dictionary of image names and file paths: 以降の例は、この画像名とファイルパスの辞書を使います:
Getting a dictionary’s value using a key returns an optional value, so image
has type Optional<String>
or, written in the preferred manner, String?
.
辞書の持つ値をあるキーを使って取得することはあるオプショナル値を返します、それでimage
は型Optional<String>
または、より好ましい流儀で書かれて、String?
を持ちます。
To conditionally bind the wrapped value of an Optional
instance to a new variable, use one of the optional binding control structures, including if let
, guard let
, and switch
.
Optional
インスタンスのラップされた値を新しい変数へ条件付きの束縛を行うには、if let
、guard let
、そしてswitch
を含む、オプショナル束縛制御構造の1つを使ってください。
To safely access the properties and methods of a wrapped instance, use the postfix optional chaining operator (postfix ?
). The following example uses optional chaining to access the has
method on a String?
instance.
ラップされたインスタンスの持つプロパティおよびメソッドに安全にアクセスするには、後置オプショナル連鎖演算子(後置?
)を使ってください。以下の例は、オプショナル連鎖を使って、has
メソッドにString?
インスタンス上でアクセスします。
Use the nil-coalescing operator (??
) to supply a default value in case the Optional
instance is nil
. Here a default path is supplied for an image that is missing from image
.
nil合体演算子(??
)を使って、省略時の値をOptional
インスタンスがnil
の場合に提供してください。ここで省略時のパスは、image
から見つからない画像に対して提供されます。
The ??
operator also works with another Optional
instance on the right-hand side. As a result, you can chain multiple ??
operators together.
??
演算子はまた、別のOptional
インスタンスを右手側でも扱います。結果として、あなたは複数の??
を一緒に鎖状につなげることができます。
When you’re certain that an instance of Optional
contains a value, you can unconditionally unwrap the value by using the forced unwrap operator (postfix !
). For example, the result of the failable Int
initializer is unconditionally unwrapped in the example below.
あなたがあるOptional
のインスタンスが値を含むことを確信している場合、あなたはその値を無条件にアンラップすることが強制アンラップ演算子(後置!
)を使って行えます。例えば、この失敗できるInt
イニシャライザの結果は、下の例において無条件にアンラップされます。
You can also perform unconditional optional chaining by using the postfix !
operator.
あなたはまた、無条件のオプショナル連鎖を実行することが、後置!
演算子を使って行えます。
Unconditionally unwrapping a nil
instance with !
triggers a runtime error.
nil
インスタンスを!
で無条件にアンラップすることは、実行時エラーの引き金となります。
case some(Wrapped)
Wrapped
.
ある値の存在、Wrapped
として格納されます。
init(Wrapped)
case none
init(nilLiteral : ())
nil
.
nil
で初期化されるインスタンスを作成します。
func map<U>((Wrapped) -> U) -> U?
Optional
instance is not nil
, passing the unwrapped value as a parameter.
与えられたクロージャをこのOptional
インスタンスがnil
でない場合に評価します、アンラップされた値をパラメータとして渡しています。
func flatMap <U>((Wrapped) -> U?) -> U?
Optional
instance is not nil
, passing the unwrapped value as a parameter.
与えられたクロージャをこのOptional
インスタンスがnil
でない場合に評価します、アンラップされた値をパラメータとして渡しています。
func ?? <T>(T?, () -> T) -> T
Optional
instance or a default value.
nil合体演算を実行します、ラップされた値のOptional
インスタンスまたは省略時の値を返します。
func ?? <T>(T?, () -> T?) -> T?
Optional
instance or a default Optional
value.
nil合体演算を実行します、ラップされた値のOptional
インスタンスまたは省略時のOptional
値を返します。
static func == (Wrapped?, Wrapped?) -> Bool
Wrapped
conforms to Equatable
.
Wrapped
がEquatable
に準拠する時に利用可能です。
static func != (Optional<Wrapped>, Optional<Wrapped>) -> Bool
Wrapped
conforms to Equatable
.
Wrapped
がEquatable
に準拠する時に利用可能です。
func encode(to: Encoder)
Wrapped
conforms to Encodable
.
Wrapped
がEncodable
に準拠する時に利用可能です。
func encode(to: Encoder, configuration: Wrapped.EncodingConfiguration)
Wrapped
conforms to EncodableWithConfiguration
.
Wrapped
がEncodableWithConfiguration
に準拠する時に利用可能です。
typealias Optional.EncodingConfiguration
Wrapped
conforms to EncodableWithConfiguration
.
Wrapped
がEncodableWithConfiguration
に準拠する時に利用可能です。
init(from: Decoder)
Wrapped
conforms to Decodable
.
Wrapped
がDecodable
に準拠する時に利用可能です。
init(from: Decoder, configuration: Wrapped.DecodingConfiguration)
Wrapped
conforms to DecodableWithConfiguration
.
Wrapped
がDecodableWithConfiguration
に準拠する時に利用可能です。
typealias Optional.DecodingConfiguration
Wrapped
conforms to DecodableWithConfiguration
.
Wrapped
がDecodableWithConfiguration
に準拠する時に利用可能です。
func hash(into: inout Hasher)
Wrapped
conforms to Hashable
.
Wrapped
がHashable
に準拠する時に利用可能です。
var unsafelyUnwrapped : Wrapped
nil
.
インスタンスのラップされた値、そのインスタンスがnil
かどうか確認せずにアンラップされます。
var debugDescription : String
var customMirror : Mirror
var publisher: Optional<Wrapped>.Publisher
struct Optional.Publisher
var hashValue : Int
Wrapped
conforms to Hashable
.
Wrapped
がHashable
に準拠する時に利用可能です。
typealias Optional.Body
Wrapped
conforms to View
.
Wrapped
がView
に準拠する場合に利用可能です。
typealias Optional.Value
Wrapped
conforms to Gesture
.
Wrapped
がGesture
に準拠する場合に利用可能です。
CustomDebugStringConvertible
CustomReflectable
Decodable
Wrapped
conforms to Decodable
.
Wrapped
がDecodable
に準拠する時に準拠します。
DecodableWithConfiguration
Wrapped
conforms to DecodableWithConfiguration
.
Wrapped
がDecodableWithConfiguration
に準拠している時に準拠します。
Encodable
Wrapped
conforms to Encodable
.
Wrapped
がEncodable
に準拠する時に準拠します。
EncodableWithConfiguration
Wrapped
conforms to EncodableWithConfiguration
.
Wrapped
がEncodableWithConfiguration
に準拠している時に準拠します。
Equatable
Wrapped
conforms to Equatable
.
Wrapped
がEquatable
に準拠する時に準拠します。
ExpressibleByNilLiteral
Gesture
Wrapped
conforms to Gesture
.
Wrapped
がGesture
に準拠する時に準拠します。
Hashable
Wrapped
conforms to Hashable
.
Wrapped
がHashable
に準拠する時に準拠します。
View
Wrapped
conforms to View
.
Wrapped
がView
に準拠する時に準拠します。