38
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OptionalをUnwrapする3つの方法

Posted at

Optionalとは?

Swiftの型の一つで、nilを保存できる子。値がある場合は、Optional(data)と保存されるので、
中のdataを取り出したい場合はunwrapしなければいけない。Optionalのデータとして扱われる。

なんでOptionalを使わないとあかんの?

もしかしたら何かしらの整数Intの値を持ってるかもしれないし、何の値も持っていない(nil)かもしれないからです。例えば、データベースなどからデータを読み込むときに、値が何もなかったら、Optionalがそれを取り込んでくれるので、とりあえずエラーは防げる!

Optionalを初期化する方法

2つ方法があります。

.swift
let optionalOne: Int? = Int("42") //方法1
let optionalTwo: Optional<Int> = Int("42") //方法2

print(optionalOne) // Optional(42)
print(optionalTwo) // Optional(42)

Optionalはタイプなので、そのまま使うと、Optionalタイプとして実行されます。
中身のデータタイプを覆っているので、中身にアクセスするには、Unwrap(開く)必要があります。

OptionalをUnwrapする方法

1. if-letでunwrap

.swift
let optionalString = fetchOptional()

if let unwrapped = optionalString {
    print(unwrapped)
}

func fetchOptional() -> String?{
    return array.first
}

2. guard-letでunwrapする

.swift
var someStr: String?
guard let unwrapped = someStr else { return }
Print (unwrapped)

3. forced unwrapping (強制的アンラップ)

Optionalにビックリマークをつける。

var someStr: String?
Let unwrapped3 = someStr! 

ただし、これを使うときはsomeStrの値が100%あると場合でないといけません。もし、強制的にアンラップして、値がnilだった場合エラーが起きるからです。

38
24
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?