亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

swift 3.0 關于協議中定義init的問題

protocol Pet : class

{
??????? var name : String {get set}
??????? init (name : String)
}

class Dog : Pet
{
??????? var name : String
??????? //??? 這個sex不想給默認值
??????? var sex : String

??????? //??? 實現Pet協議的init
??????? init (name : String)
??????? {
??????????????? self.name = name

? ? ? ? ? ? ? // ?? 這里會報錯,因為沒有給sex初始化

??????? }
}

上面的代碼,如果在協議(Pet)里面規定了一個構造函數(init (name : String))

在使用它的類(Dog)中又有自己的沒有默認值的變量(sex : String),假如這個變量就是不適合給默認值

那構造函數怎么寫???實現協議的構造函數又不可以給自己的變量賦值,因為參數列表規定就是(name : String)

那在Dog類實現的Pet協議規定的init (name : String)一定會報錯

正在回答

1 回答

var sex : String?

0 回復 有任何疑惑可以回復我~
#1

厲害了我 提問者

機智
2017-10-07 回復 有任何疑惑可以回復我~
#2

慕粉2348563550 回復 厲害了我 提問者

想咨詢一下 protocol Pet : class 后面的這個class是什么意思?
2017-11-05 回復 有任何疑惑可以回復我~
#3

梁華建 回復 慕粉2348563550

說明這個協議只能被類遵循 不能被結構體等遵循
2019-01-15 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

swift 3.0 關于協議中定義init的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號