Swift のデータ型の確認と変換 - is / as 演算子

ここでは Swift の is と as 演算子を使って、データ型の確認・変換する方法をご説明します。


Swift で is 演算子を使ってデータ型を確認する

Swift でデータ型を確認するには is 演算子が使えます。


例えば、以下のような Any 型の value という変数に入っている値のデータ型が、String か確認したい時は次のようにできます。

let value : Any = "test"

if value is String {
    print("value is String")
} else {
    print("value is not String")
}

これを実行すると value に入っている値は文字列なので value is String と表示されます。

Swift のデータ型の確認と変換 - is / as 演算子 1


value に整数の値を代入して実行してみます。

let value : Any = 1

if value is String {
    print("value is String")
} else {
    print("value is not String")
}

これを実行すると value に入っている値は整数なので value is not String と表示されます。

Swift のデータ型の確認と変換 - is / as 演算子 2


Swift で as 演算子を使ってデータ型を変換する

Swift でデータ型を変換するには as 演算子が使えます。


as? 演算子では、タイプを確認して、オプショナルのデータ型に変換します。

変換できない場合は nil になります。


以下のような value 変数を as? を使ってキャストして、データ型を確認してみます。

let value : Any = "test"

let val1 = value as? String
print(type(of: val1))

let val2 = value as? Int
print(type(of: val2))

これを実行すると次のようになります。

Swift のデータ型の確認と変換 - is / as 演算子 3

val1 は test という値の入ったオプショナルの String に変換されています。

test を整数に変換できないので、val2 の値は nil になり、データ型はオプショナルの Int になっているのがわかります。


as! 演算子は as? と同じ使い方で使えますが、オプショナルではないデータ型に変換します。

let value : Any = "test"

let val1 = value as! String
print(type(of: val1))

Swift のデータ型の確認と変換 - is / as 演算子 4


変換に失敗した時は、プログラムがクラッシュしてしまうのでお気をつけください。

絶対に変換が成功するとわかっているような状況で、オプショナルでないデータ型に変換したい時にのみ使います。

let value : Any = "test"

let val2 = value as! Int
print(type(of: val2))

Swift のデータ型の確認と変換 - is / as 演算子 5


以上、Swift の is と as 演算子を使って、データ型の確認・変換する方法をご説明しました。

© 2024 iOS 開発入門