【swift入門】初心者向け基本文法徹底解説「型の変換」

前回は「型の種類」について見てきました。

今回は、その続きで「型の変換(キャスト)」について見ていきましょう!

 

型の種類を覚えていないという方は、

前回の記事で、おさらいしてきましょうw

【swift入門】初心者向け基本文法徹底解説「型の種類」

 

型の変換(キャスト)

そもそも、なぜ変換しないといけないのか?というと

型は言わば、属性みたいなものなんですが、

定数や変数に入れる値は、定数や変数と同じ属性でないと入れられないんですね!

 

定数や変数を箱(値を入れる入れ物)だと考えると、

火属性の箱には、火属性の値を

雷属性の箱には、雷属性の値を入れてあげる必要があります。

火属性の箱に、水属性の値は入れられないんですw

 

そこで、どうしても入れたい場合は、

水属性の値を進化させ火属性にしてあげる必要があります。

この属性を変えることを変換(キャスト)と言います。

で、この属性を火だの水だのと例えてしまいましたが、

Swiftでは、前回学んだ型の種類になるんですね。

数字だったら、整数のInt型や小数のDouble型などなど

 

特にSwiftは型が厳密にチェックされ、

整数(Int)の定数や変数に、

小数(Double)の値を入れようとするとエラーが出てしまいます。

そこで、こういった場合のように、

0.1(小数)をInt型(整数)にいれたい場合は、

変換(キャスト)してあげる必要があります。

 

その変換の仕方が、

Swift
price = Int(0.1)

と0.1をIntで囲ってあげます。

この場合、小数点以下は切り捨てられてしまい、

priceの値は0になってしまうので注意が必要です。

 

まぁ、普通こんなことはしないので、

自分ながらバカみたいな例だなと感心している次第でありますw

 

どんな時に(キャスト)するのかというと、

違う型どうしを同じ式内で扱う時でしょうか?!

商品単価 × 個数 × 消費税 = トータル金額

みたいな計算の時ですかね?!

型を合わせないとエラーがでます。

Swift
let price = 1000 //商品単価
let kosu = 5 //個数 
let taxRate = 1.08 //税率
let amount : Double //合計金額
amount = price × kosu × taxRate //エラー

こんな時にキャストしてあげる必要があります。

amountもDoubleで型宣言しておく必要があります。

 

消費税をIntにキャストしてしまうと、

消費税の値が1(小数点以下は切り捨て)になってしまって

計算式の答えが変わってきてしまうので、

消費税の小数に他の数字を合わせます。

Swift
amount = Double(price × kosu) × taxRate

ちなみに、amountは5400.0になります。

 

文字型Stringの式

数字を式に当てはめるのは、

なんとなくイメージしやすいと思いますが、

じゃ、文字を式に当てはめるってどういうこと?

って、不思議に思われていることでしょう!

 

文字も式にできるんですw

 

どんな感じかというと、

「名前 + 敬称」といったような時。

 

敬称の部分を

男の子だったら「くん」で、

女の子だったら「さん」にしたいなぁ〜とします。

すると、こんな式ができます。

Swift
let name = "佐藤"
let boy = "くん"
let girl = "さん"
var greeting : String
greeting = "おはよう" + name + boy
greeting = "おはよう" + name + girl

最初のgreetingは、「おはよう佐藤くん」

次のgreetingは、「おはよう佐藤さん」になります。

こんな感じで、文字型Stringは足し算で繋ぎわせて

表記することができます。

 

で、数字と文字の足し算もできます。

どんな時にするかというと、

スコアを表記するときなどでしょうか!?

 

やはりスコアは満点がいいので、

100点としましょうw

これを式で表すとすると

こんな感じでしょうか?!

Swift
var score = 100
var scorePoint = score + "点"

ですが、上の式だとエラーがでます。

 

ね!

「Int」と「String」は適用できませんって

そう、型を合わせないといけないんですね!

 

文字を数字にはできないので、

数字を文字として扱います。

キャストする場合は、

キャストしたい型で囲うといいんでしたね!

 

上の場合は、

scoreをStringで囲ってあげましょう!

このときの「scorePoint」は、「100点」というString型です。

エラーみたいのが出てるのは、

scoreもscorePointも、

値が変わらないので「var(変数)」じゃなくて

「let(定数)」でいいよって言ってくれています。

 

varにした理由は、スコアって変わるものじゃないですか?!

調子のいい時もあれば、

悪い時もありますからね!

今回は100点でも次回は分かりませんからw

 

ってことで、おさらいです!

おさらい
  • 式は型を合わせましょう!
  • 文字型は、足し算すると文字を繋ぎ合わせることができます。
  • 数値は、文字型にキャスト(文字として扱うこと)できます。

てなわけで、今日はここまでw

 

ここまでは、1つの定数や変数で1つの値を扱ってきましたが、

次回は、一つの定数や変数で複数の値を扱う方法についてやっていきましょう!

次回の記事はこちら!

【swift入門】初心者向け基本文法徹底解説「タプル」

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA