1
我有描述,需要測試了海水參數的協議:爲什麼我的默認屬性值在Init()中仍顯示爲參數?
我有一個結構,Calcium
,符合Parameter
:
struct Calcium: Parameter {
var name: String = "Calcium"
var unit: Unit = UnitDispersion.partsPerMillion
var value: Double
}
由於Calcium
的name
和unit
參數有默認值,爲什麼我需要在init
方法中提供它們?我不應該只需要提供value
的值?
我想了解面向協議的編程,真的很感謝這裏的一點指導。
關於下一個明顯的問題:「爲什麼沒有按」 t Swift ...「,參見https://github.com/apple/swift-evolution/blob/master/proposals/0018-flexible-memberwise-initialization.md,其中討論了改變這種行爲的兩種建議,並鏈接到了爲什麼它的理由迄今尚未改變。 –
@RobNapier很酷,謝謝你的補充。所以我們可以稱之爲「智能成員初始值設定項」... :) – matt
因此,如果我有,比方說20個更多符合參數協議的水參數結構,我仍然需要爲每個結構實現相同的初始化程序?這是可以添加到協議擴展中的東西嗎,還是我最好只是將該初始化程序添加到協議中,並要求它通過符合參數協議的所有內容來實現? –