Swift Playgroundsで学ぶiOSプログラミング 第9回
文系的な人間が理解しやすいデータが「文字列」
コンピューターを理系のためだけのものにさせないための「文字列」
2016年10月10日 17時00分更新
コンピューターのことは、日本語では「計算機」と言います。その呼び名では、カリキュレーターとも呼ばれる電卓のような数字専用の計算機と区別するのが難しいでしょう。しかし、コンピューターの用途が数字を計算することだけだと思っている人は、現在ではむしろ少ないのではないでしょうか。
確かに、銀行や証券会社でお金の計算ばかりしている大型コンピューターや、科学技術の難問を解くために数字ばかりを扱っているスーパーコンピューターのイメージには強いものがあります。しかし、一般の人が日常生活で知らず知らずのうちに使っているコンピューターは、日本語など普通の言葉で書かれたテキストメッセージを扱うことのほうがむしろ多いことに気づくでしょう。
膨大な科学技術計算のように、数字ばかりを扱うのが理系のためのコンピューターだとすると、人と人とがやりとりするメッセージなどを扱うのは文系のためのコンピューターだと言えるかもしれません。その文系的な、人間が理解できる言葉を扱うための基本となるデータが「文字列」なのです。
文字列とは?
「文字列」は、読んで字のごとく文字の列、つまり文字が一列に並んだものです。それによって、言葉、つまり単語や文を表現することができます。それは、AIを搭載して文の意味がわかるようになっている場合を除くと、普通はコンピューターにとって単なる文字の羅列に過ぎませんが、それを見る人間にとっては重要な意味を伝達することができます。この点でも、数字とは対照的です。
プログラムの中では、変数の名前も文字が連なったものですが、それは文字列とは言いません。変数名やプログラミング言語の命令語などと区別するために、文字列は前後に「"」(ダブルクォーテーション)を付けて、表現します。それによって、1つの文字列の中に単語とスペースを混在させることもできるようになり、英語などの文を表現できます。日本語などではスペースで単語を区切る必要はありませんが、必要なら文字列の中にスペースを入れることはもちろん可能です。
文字列も、数字と同じように変数に代入して使うことができます。実は、この連載の初回に、文字列の基本的な表現が登場しています。それは、XcodeのPlaygroundを新たに作成したときに、そこに最初から記述されていたコードの中にありました。それ以降は文字列はいっさい登場してないので、もうすっかり忘れてしまったかもしれません。その1文を、もう一度書き出しておきましょう。
var str = "Hello, playground"
これは、varというSwiftの命令によって、strという名前の変数を宣言し、同時に「Hello, playground」という文字列を代入しているのです。このとき、strという変数のタイプは、自動的にString型になります。つまり文字列型ですね。これは、数字に対するIntやDoubleと同じようにSwiftに最初から定義されている変数の型の1つです。いったん型の定まった変数は、後から型を変えることはできません。
最初から特定の文字列を代入するのではなく、String型の変数だけを宣言して用意しておきたい場合、その書き方は3とおりあります。1つ目は変数に空の文字列("")を代入する方法。2つ目は、変数名と型の名前をコロン(:)で区切って宣言する方法、3つ目はSwift独自の書き方で、変数をString型の空の変数として初期化する方法です。
var str1 = ""
var str2:String"
var str3 = String()"
厳密に言うと、str1とstr3は空の文字列となりますが、str2は中身がまだ定まらないString型の変数になります。このようにして宣言した3とおりのString型の変数には、あとからどんな文字列でも代入できます。そのあとは3とおりの方法で作った変数も、すべて同様に扱えます。
文字列のいじり方
文字列は、もちろん数値とは異なりますが、ある意味で「演算」することができます。例えば足し算のようにして、2つの文字列を結合する(くっつける)ことができます。
この連載の記事
- 第100回 SceneKitの物理現象シミュレーションとアニメーションをARKitに持ち込む
- 第99回 「物理学体」と「物理学場」を設定して物理現象をシミュレーション
- 第98回 SceneKitのノードに動きを加えるプログラム
- 第97回 いろいろな形のノードをシーンの中に配置する
- 第96回 SceneKitの基礎シーンビュー、シーン、ノードを理解する
- 第95回 現実世界の床にボールや自動車のモデルを配置する
- 第94回 ARKitを使って非現実世界との融合に備える
- 第93回 ARKitが使えるiPadを識別するプログラム
- 第92回 Swift Playgrounds 2.1での問題点をまとめて解消する
- 第91回 iPadの内蔵カメラで撮影した写真を認識するプログラム
- この連載の一覧へ