見出し画像

はじめてみよう。プログラミング!- 構造体とクラス(Structures and Classes)3

Class クラス

まず構造体と同じようにクラスを作ります。

class Car{
   var makerName:String
   var productDay:Int
}

全項目イニシャライザで初期化してみます。

var car = Car(makerName:"Honda",productDay:1990)
car.makerName

これではエラーがでてしまいます。全項目イニシャライザは使えないことがわかります。

クラスではイニシャライザ、"init()"を使うか、"初期値"を入れることで使うことができるようになります。まず、イニシャライザを使います。

class Car{
   var makerName:String
   var productDay:Int
   
   init(makerName:String,productDay:Int) {
       self.makerName = makerName
       self.productDay = productDay
   }
}

または、

class Car{
   var makerName:String = "Honda"
   var productDay:Int = 2020
 }

実行します。

var car = Car()

car.makerName

ここでクラスと構造体の違いはイニシャライザの違いだけでなく、他にも違いがあり、使い分けが必要です。まず参考サイトです。

公式サイトでの使い分け方

Consider the following recommendations to help choose which option makes sense when adding a new data type to your app.

・Use structures by default.
・Use classes when you need Objective-C interoperability.
・Use classes when you need to control the identity of the data you're modeling.
・Use structures along with protocols to adopt behavior by sharing implementations.

翻訳してみます。

アプリを作る時によく振る舞いがよく似ているクラス、構造体の選び方は以下の通りです。

・デフォルトでは構造体を使用。
・Objective-C の相互運用性が必要な場合。
・同一性を持ってモデリングする場合
・プロトコルを使い実装する場合。

こんな感じになると思います。基本的には構造体を使うことを推奨しています。

この記事が気に入ったらサポートをしてみませんか?