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个更多符合参数协议的水参数结构,我仍然需要为每个结构实现相同的初始化程序?这是可以添加到协议扩展中的东西吗,还是我最好只是将该初始化程序添加到协议中,并要求它通过符合参数协议的所有内容来实现? –