はじめてみよう。プログラミング!- 構造体とクラス(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 の相互運用性が必要な場合。
・同一性を持ってモデリングする場合
・プロトコルを使い実装する場合。
こんな感じになると思います。基本的には構造体を使うことを推奨しています。
この記事が気に入ったらサポートをしてみませんか?