Swiftを勉強中なのですが、構造体やクラスの初期化時の方法について下記2つの方法の違いがわかりません。
プロトコルではコンピューテッドプロパティが必須なことは分かりましたが、そのプロパティに準拠した構造体ではコンピューテッドプロパティの他に、イニシャライザでの初期化が可能であると気づきました。
2つの初期化の方法の違い、使い分け等あれば教えていただきたいです。
Swift
1protocol SomeProtocol { 2 var value: Int { get } 3} 4 5// コンピューテッドプロパティで初期化 6struct SomeStruct1: SomeProtocol { 7 var value: Int { return 1 } 8} 9 10// イニシャライザで初期化 11struct SomeStruct2: SomeProtocol { 12 var value: Int 13 init() { 14 value = 1 15 } 16} 17 18var someStruct1 = SomeStruct1() 19someStruct1.value // 1 20 21var someStruct2 = SomeStruct2() 22someStruct2.value // 1
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/09 02:52