可以在Swift 2中设置一个等于另一个变量的变量吗?

bta*_*ang -2 ios swift2

我对Swift比较新,想知道是否可以在Swift中设置一个等于另一个变量的变量.我有一个虚拟计数器变量,我想设置等于另一个变量,但它给了我一个错误.它似乎可以在Playground环境中使用,但不能在ViewController中使用.

import UIKit
class ViewController: UIViewController {
    var count = 10.0
    var count2 = count
    ...
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Qby*_*yte 5

在这种情况下,我建议你使用一个懒惰的属性,只有在你访问它时才会被初始化:

import UIKit
class ViewController: UIViewController {
    var count = 10.0
    lazy var count2: Int = { self.count }()
    ...
}
Run Code Online (Sandbox Code Playgroud)

有关语法和语义的更多信息:

  • 懒惰:上面解释过

  • { self.count }:一个闭包,它只是一个没有名字的函数,并()在正文后用括号执行.

    就像一个函数一样,它有一个返回类型(Int),在这种情况下,Swift推断return出闭包相当于{ return self.count }

有关更多信息,请参阅有关闭包延迟初始化的这些链接.