为什么我不能将全局变量用作swift中另一个全局变量定义的一部分?

时间:2016-06-07 21:54:50

标签: swift global-variables let

我不明白为什么在Swift中不允许这样做:

let graphPointCircleDiameter: CGFloat = 5.0
let graphPointCircleDisplacement: CGFloat = graphPointCircleDiameter/2

我收到错误:

  

实例成员'graphPointCircleDiameter'不能用于NameOfVC类型。

任何人都可以解释为什么静态“let”变量不能被Swift中全局范围内的另一个变量引用?

谢谢!

1 个答案:

答案 0 :(得分:0)

let定义一个常量,而var定义一个变量。如果您想从全局常量中指定变量,则可以将graphPointCircleDisplacement设置为lazy var而不是:

let graphPointCircleDiameter: CGFloat = 5.0
lazy var graphPointCircleDisplacement: CGFloat = self.graphPointCircleDiameter/2

作为Leo Dabus mentioned,您还可以返回常量的值以定义另一个:

var graphPointCircleDisplacement: CGFloat { return graphPointCircleDiameter/2 }