Swiftで整数・実数が絡む計算の時に気をつけるべきこと

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

プログラミング言語では必ずといっていいほど計算が行われる。当然ながらSwiftでも演算が行えるわけだが、Swiftにおいては整数と実数が絡む計算をする時は気をつけなければならないことがある。とはいっても、変数の型がわかればこちらの方が判別しやすいとは言えるのだが。

例えば、以下のコードがあるとする。

var integer = 120
var real = 120.0

print(integer + real)

この場合、Swiftではエラーが発生する。というのは、Swiftでは整数型と実数型の変数の計算はそのままでは不可能で、前もってどちらに型を統一する必要があるからである。

例えば、実数型で計算したい場合は以下のようにする。

print(Double(integer) + real)

この場合は240.0となる。逆に整数にする場合は以下のようになる。

print(integer + Int(real))

この場合は240である。

C言語においては、整数型と実数型では実数型、整数型同士・実数型同士でも大きい方に暗黙的に合わせられたが、Swiftではそうなっておらず、整数型・実数型及び実数型の計算は直接は不可能(どちらかに合わせる必要がある)、整数型同士では非推奨となっている、ということである。

このことは、開発者が変数の型を明示的に指定する必要があるという点では不便ではあるものの、型の暗黙変換による弊害を防ぐという点では安全と言えるので、是非とも心がけておきたい。

タイトルとURLをコピーしました