ざっくりん雑記

プログラミングで忘れそうなことをひたすらメモる

Swift - キャストする

Swiftでのキャスト

Swiftは定数や変数の型を厳密にチェックする性質を持っている。したがって、Double型にInt型の変数の値を代入しようとしたり、引数の型がInt型と定義しているところにDouble型が渡されるとエラーとなる。

そういった場合にキャストを使い、どちらか一方の型を合わせてあげる必要がある。

IntとDoubleの場合

let count = 1
let price = 100
let tax = 1.08

let sum = price * count * tax

この場合の結果は以下のとおり。

error: binary operator '*' cannot be applied to operands of type 'Int' and 'Double'
let sum = price * count * tax
          ~~~~~~~~~~~~~ ^ ~~~

Int型とDouble型は掛け算できない、とエラーが出る。

そのため、price * countをDouble型にキャストしてあげる必要がある。

let count = 1
let price = 100
let tax = 1.08

let sum = Double(price * count) * tax
108

計算が正常に行われたことがわかる。

Stringと数値を連結させるときのキャスト

文字列と文字列においては+演算子で連結させることができる。しかし、文字列と数値型を+演算子で連結させようとするとエラーとなる。

こちらも、数値型をString型にキャストしてあげる必要がある。

let weather = "雪"
let temp = 0

print("きょうのてんきは" + weather + "、気温は" + String(temp) + "度となっています。")
きょうのてんきは雪、気温は0度となっています。

参考