プログラミング言語には、誇張抜きで数え切れないくらいの種類があります。しかし、それらは完全に独立して存在しているわけではありません。互いに大小さまざまな影響を与え合っています。そして、その影響の流れによる系統のようなものもあります。Swiftは、メジャーな言語としてはかなり新しい方なので、ほかの言語に与えた影響よりも、ほかから受けた影響の方が大きいと言えるでしょう。
Swiftも過去に登場した数多くの言語からいろいろな要素を取り入れて設計されています。その中で、言語として最も基礎的な文法の部分は、やはりC言語からの影響が強いと言えるでしょう。これは、iOSやmacOSの開発言語として直接の祖先にあたるObjective-Cが、その名が示すようにC言語の系列であることからも当然のことと言えます。今回から登場するいろいろな「演算」は、C言語の影響がかなり色濃く現れている部分のひとつです。
「計算」と「演算」
前回の最後の「次回の予定」のところで、いきなり「演算」という言葉が出てきたので、なんとなく違和感を覚えたという人もいるかもしれません。確かに日常会話ではあまり使わない用語ですが、プログラミングの世界ではよく使います。その場合、ほとんどは「計算」のことだと思えってもらえばいいのですが、一般的に計算という感覚とはズレた使い方もあります。
もちろん数学にも演算という言葉は出てきますが、むしろコンピューターより専門的で範囲が狭く、縁遠いと感じられる用語でしょう。それに比べれば、プログラミングの演算はずっと日常的かもしれません。コンピューターで実行する計算や、なんらかの処理のことは、もっぱら演算と呼ぶと思っていても、大きく間違えることはないでしょう。
「=」も一種の演算!?
前回までに、一般に四則演算と呼ばれる、足し算、引き算、かけ算、割り算は、実際にPlaygroundの上で試してみました。その際には、いろいろな式の計算結果を、Playgroundの右側の領域の表示で確認しました。しかし、その計算結果は再利用することなく、そのまま捨てていたことになります。これではプログラムとしては役に立ちません。
プログラミングでは、計算結果は変数に入れてしばらくのあいだ記憶しておき、さらにほかの計算に利用したりするのが普通です。その例は、前回の絵文字の変数名の例で示したとおりです。もちろん普通は絵文字ではなく、アルファベットと数字などで構成された名前の変数を使います。
計算結果や数値を変数の値として設定することを「代入(だいにゅう)」と呼びます。実はコンピュータではこれも演算の一種なのです。この場合、「=」という記号によって代入演算を実行することになります。そこでこの「=」を「代入演算子」と呼んでいます。この場合の「子(し)」は、何かの子供ということではなく、ここでは単に記号といった意味を表します。
代入の場合には、「=」の左側にくるのは必ず変数名ですね。右側には、数式や初期値を含む値そのものや、なんらかの値を返す関数などがくることになります。どのような方法でも、値を代入された変数は、他の演算の中で、その値と同様にふるまうことは、前回に見たとおりです。
このような「=」の使い方は、一般的な算数や数学とはだいぶ異なっていることにお気付きでしょう。算数では、例えば「1+2」の計算結果が「3」になることを示すために「1+2=3」と書きます。プログラミングでは、このような「=」の使い方はあり得ません。Swiftでも当然エラーとなります。
この連載の記事
- 第100回 SceneKitの物理現象シミュレーションとアニメーションをARKitに持ち込む
- 第99回 「物理学体」と「物理学場」を設定して物理現象をシミュレーション
- 第98回 SceneKitのノードに動きを加えるプログラム
- 第97回 いろいろな形のノードをシーンの中に配置する
- 第96回 SceneKitの基礎シーンビュー、シーン、ノードを理解する
- 第95回 現実世界の床にボールや自動車のモデルを配置する
- 第94回 ARKitを使って非現実世界との融合に備える
- 第93回 ARKitが使えるiPadを識別するプログラム
- 第92回 Swift Playgrounds 2.1での問題点をまとめて解消する
- 第91回 iPadの内蔵カメラで撮影した写真を認識するプログラム
- この連載の一覧へ