【Xcode/Swift】”型” とはなんぞや

今回はSwiftに限らずプログラミングを学ぶ際に重要なる “型” について解説します。

基本中の基本なのでしっかりと覚えておきましょう!

型の種類 & 型はそもそもなぜ必要?

Swiftでは主に以下の4つの型が使われます

説明
Int (整数型)整数の値。1 , -2 , 13とか
Double (小数型)小数の値。0.72 , 1.89とか
String (文字列型)文字列の値。”おはよう” とか
Bool (真偽)真偽値。true か false

なぜ値を入れるだけの作業に型というものを意識しないといけないと思いますか?

これには主に2つ理由があります。

  • 事前にエラーを見つけるため
  • PCのメモリを有効活用するため

☆事前に型を決めておくことで、どこでエラーが起こっているのかを分かりやすくします。

☆型ごとに情報を分けることで無駄な部分を引っ張ってくる必要がなく、効率よくメモリが活用できるようになります。

それではこれから実際にXcodeでコードを書いて学んでいきましょう。

サンプルプロジェクトを作って “型” を学ぶ

プロジェクト作成、Storyboardの装飾
Labelを4個配置する
各ラベルをプログラムと繋げる

上から順に、“nameLabel” , “ageLabel” , “heightLabel” , “genderLabel” と命名

変数の宣言をして各ラベルに入れる値の下準備を行う

以下変数を記述しましょう。

ここまで出来たら以下コードをまずはコピペしましょう。

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var nameLabel: UILabel!
    @IBOutlet weak var ageLabel: UILabel!
    @IBOutlet weak var heightLabel: UILabel!
    @IBOutlet weak var genderLabel: UILabel!
    
    private var name: String = "山田太郎"
    private var age: Int = 20
    private var height: Double = 175.8
    private var gender: Bool = true
    
    override func viewDidLoad() {
        super.viewDidLoad()
        setupppView()
    }
    
    private func setupppView() {
        nameLabel.text = ("私の名前は\(name)です")
        ageLabel.text = ("私は\(age)歳です")
        heightLabel.text = ("身長は\(height)cmです")
        if gender == true {
            genderLabel.text = ("性別は男です")
        }else {
            genderLabel.text = ("性別は秘密です")
        }
    }
    
}

◉ビルドをして正常に表示されるか見てみましょう

“型エラー” が起こる原因

上のコードで一部修正してわざとエラーを発生させてみましょう。

20を”20″に変えた途端にエラーが発生しましたね、詳細を見てみましょう。

◉エラー文

Cannot convert value of type ‘String’ to specified type ‘Int’

なぜエラーが発生したかお分かりでしょうか?

これが”型”の重要な部分です。

変数ageはInt型と宣言している為、数字以外は代入してはいけません。

なのに文字列型の”20″を入れてしまったことで 「IntにStringは入れてはならん!」とXcodeさんに怒られているわけです。

とりあえず最初の内は、

  • String型 = 文字列しか許さん
  • Int型 = 数値しか許さん
  • Double型 = (小数値を含めた)数値しか許さん
  • Bool型 = True or Falseしか許さん

と覚えておけば大丈夫です。実際は型変換(キャスト) が出来ますが今回は解説を割愛します(いきなり情報を詰め込みすぎると理解しづらくなるので)

まとめ

今回は以上です、基礎をしっかりと固めてSwift開発の勉強をスムーズに進められるようにしていきましょう!