Swift は、すべての数値型に対してスタンダードな 4 つの演算子をサポートしています。

  • 加算 (+)
  • 減算 (-)
  • 乗算 (*)
  • 除算 (/)
1 + 2       // 3
5 - 3       // 2
2 * 3       // 6
10.0 / 2.5  // 4.0

C や Objective-C での算術演算子と異なり、Swift の算術演算子は値がオーバーフローすることをデフォルトでは許容しません。Swift の(a &+ b のような)オーバーフロー演算子を使用して、値がオーバーフローしたときの動作を選択することができます。Overflow Operators を確認してください。

加算演算子は、String の結合もサポートされています。

"hello, " + "world"  // "hello, world"

剰余演算子

剰余演算子 (a % b) は、a に収まる b の倍数を算出し、余り(剰余)の値を返します。

NOTE
剰余演算子 (%) は、他の言語ではモジュロ演算子としても知られています。しかしながら、Swift での負の値における動作は、厳密にはモジュロ演算よりもリメインダーにあたります。

剰余演算子がどのように動作するかを見ていきます。9 % 4 を計算するために、まず 9 に収まる 4 の個数を算出します。

image: remainderInteger_2x.png

9 には 2 つの 4 を収めることができ、残りは(オレンジ色で示された)1 です。

Swift では、次のように記述します。

9 % 4    // 1

a % b の答えを求めるために、% 演算子は次の等式を算出し、出力として remainder を返します。

a = (b x some multiplier) + remainder

some multiplier は、a に収まる b の最大数になります。

この等式に 9 と 4 を挿入してみます。

9 = (4 x 2) + 1

剰余を算出する a の値がマイナスであっても同じ方法が適用されます。

-9 % 4   // -1

この等式に -9 と 4 を挿入してみます。

-9 = (4 x -2) + -1

剰余値は -1 になります。

b のマイナス符号は無視され、a % b と a % -b は常に同じ答えになります。

浮動小数点剰余計算

C や Objective-C での剰余演算子とは異なり、Swift の剰余演算子は、浮動小数点数についても演算することができます。

8 % 2.5   // 0.5

この例では、8 割る 2.5 の答えが 3 余り 0.5 となり、剰余演算子は Double 値 0.5を返しています。

image: remainderFloat_2x.png

単項マイナス演算子

単項マイナス演算子の - を前置することで、数値の符号を切り替えて反転させることができます。

let three = 3
let minusThree = -three       // minusThree は -3
let plusThree = -minusThree   // plusThree は 3

単項マイナス演算子 (-) は、スペースを空けず、値の先頭に直接置きます。

単項プラス演算子

単項プラス演算子 (+) は、何も変化せず、値をそのまま返します。

let minusSix = -6
let alsoMinusSix = +minusSix  // alsoMinusSix は -6

単項プラス演算子は、実際には何の変化もありませんが、負の数値に付けた単項マイナス演算子とのコード上の対称性を目的に、正の数値にも演算子を付けることができます。


Portions of this page are translations based on work created and shared by Apple and used according to terms described in the Creative Commons Attribution 4.0 International License.