tetu式

ゲームと音楽・作曲の自己満足と悩みどころの多いプログラムのブログ。

Swiftの文字列変数型と文字列型へのキャスト

今回は短め。
Swiftにおける数値以外の型、文字列型について。



var strA: String = "A";
var strB = "B";

文字列型は String で宣言します。
また、型指定無しで初期値に文字を入れた場合はString型として扱われます。


f:id:stickpan:20160127184137p:plain


こんな感じにString型同士は + で結合することができます。
数式では加算処理になりますが、文字列型はこうなります。
数値型と文字列型が複合してしまった場合、


f:id:stickpan:20160127184606p:plain


当然ながらエラーになります。
数値型を文字として扱う為には型変換、キャストをする必要があります。

キャストの仕方は

変換後の型名(変数);

と書きます。


f:id:stickpan:20160127185108p:plain


数値型を文字列型にキャストする時はこのように無難に通りますが


f:id:stickpan:20160127185307p:plain


文字列型から数値型へのキャストは単純には通りません。
実はこの時、strCやstrDというのはOptional型というものに変換されています。


f:id:stickpan:20160127190648p:plain


Optional型についてはまた後で調査して記事にしたいと思います。
とりあえず今は少なくともInt型ではない為、計算できないということに。
で、このOptional型をアンラップという手法をとることで
Int型に変換できます。


f:id:stickpan:20160127190158p:plain


こんな風にキャスト記述の後ろに ! を入れることで
Int型に綺麗に変換し、計算できるようになります。

ちなみに以前はString型の変数に .toInt() を使うことでInt型に変換できましたが、
Swift2.0では使えなくなっています。
イメージ的に分かりやすいのになぁ・・・