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

标签 swift global-variables let

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

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

我收到错误:

Instance member 'graphPointCircleDiameter' cannot be used on type NameOfVC.

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

谢谢!

最佳答案

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 }

关于swift - 为什么我不能在 swift 中使用一个全局变量作为另一个全局变量定义的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37690067/

相关文章:

javascript - jQuery 为 DOM 中尚不存在的元素定义全局变量

c++ - boost::optional<> 如何处理局部变量?

ruby-on-rails - 在 rspec 中更改关联对象的正确方法

haskell - 为什么使用遮蔽 `let` 绑定(bind)的此代码会挂起?

xcode - Swift 2.0 CLLocationManager 启动更新位置

ios - Swift:如何在使用自动布局时调整 UITextView 中的字体大小?

iOS swift : Adding or Moving NavigationBar to bottom of the view controller

ios - 如何正确地关闭呈现的 ViewController 并返回到父 ViewController?

design-patterns - 跨多个服务器/应用程序共享全局变量

racket - Define 相对于 Let 的优点