我不明白为什么self.rate = rate
是必要的....已经rate
已经声明并知道它是Double
.... init方法据说初始化rate
但它没有为它设置一个实际的double值....那么rate
如何被“初始化”.....在{之前使用通配符(_)是什么意思{1}}参数?
我还可以输入rate = 0.0而不是使用初始化方法吗?使用init()的能力是什么?
rate
答案 0 :(得分:0)
$('main').scrollTop()
是struct自己的属性; <main>
(在self.rate
方法内)是方法的参数,因此该方法将属性初始化为参数的值。这可能会令人困惑,但以下方法会产生同样的效果:
rate
至于下划线,它在这里没有任何功能。它通常表示您在调用方法时可以跳过参数名称,但第一个参数始终如此。甚至在documentation:
的注释中也提到了这一点因为默认情况下第一个参数省略了它的外部参数名称,所以显式写下划线是无关紧要的。
答案 1 :(得分:0)
如果初始化“每小时里程数”时不需要“费率”,那么您不需要这样做。您可以这样申报费率:
var率:双倍?
在你知道它已被初始化之后解开它(如果速率!= nil - &gt;用速率做某事!)
答案 2 :(得分:0)
self.rate是结构的自己的领域; rate(在init方法内)是方法的参数。 尽量不要使用0或其他,参数会建立堆栈溢出,这可能是方法错误。
答案 3 :(得分:0)
如果初始化不需要外部名称,则使用下划线“_”覆盖默认行为。并且,self.rate是struct拥有的属性,该方法初始化参数的属性。
答案 4 :(得分:0)
为什么self.rate = rate是必要的....不是已经声明的速率并且已知它是双重的......初始化方法可以初始化速率但是它没有为它设置实际的双精度值。 ..如何率“初始化”
rate
作为参数传递给构造函数。完成构造函数后,参数值将丢失。我们需要将该值赋给实例变量,否则值将丢失。实例变量和参数具有相同名称的事实不是一个规则,但它很常见。 self.
前缀用于区分参数和实例变量。
还有什么意思在速率参数之前使用通配符(_)?
Swift方法还有一个外部参数名称,在调用方法时必须指定该名称。如果您不想在构造函数中使用外部参数,则必须使用_
忽略它。
我也可以输入rate = 0.0而不是使用初始化方法吗?使用init()的能力是什么?
是的,你可以这样做,但重点是构造函数的调用者可以指定值。初始化程序通常用于为常量变量(初始化后无法更改)或私有变量设置默认值。初始化程序(构造函数)的重点是使对象处于有效的默认状态。