在Swift programming language
我们可以宣布这样一个常数:迅速声明一个常量,而不让
let sth = "something"
,但我发现,我们可以写
window = UIWindow(frame: UIScreen.mainScreen().bounds)
它不使用关键字让,所以那是什么意思?
在Swift programming language
我们可以宣布这样一个常数:迅速声明一个常量,而不让
let sth = "something"
,但我发现,我们可以写
window = UIWindow(frame: UIScreen.mainScreen().bounds)
它不使用关键字让,所以那是什么意思?
这意味着您正在修改某个类的现有实例属性。我猜你是在你的应用程序代理或UIView
子类中做过的。
通常情况下,你必须使用let
或var
,所以如果你能够分配一个值window
没有那是因为你所在的范围已经有了它宣布这些关键字之一。
任何声明,无论是常量还是变量,都必须使用let
(对于常量)和var
(对于变量)关键字进行声明。例如
var window = UIWindow(frame: UIScreen.mainScreen().bounds)
let window2 = UIWindow(frame: UIScreen.mainScreen().bounds)
window
是因为它被创建使用var
和window2
是常数,因为它是使用let
创建的变量。现在,在下面
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window2 = UIWindow(frame: UIScreen.mainScreen().bounds)//error
行的代码1将正常工作,但第2行会给出一个错误,因为你不能重新分配一个值恒定。
你可以在游乐场试试上面的代码并检查错误。
window = UIWindow(frame: UIScreen.mainScreen().bounds)
如果你正在尝试写这样的代码,那么你必须声明一个变量是这样的:
var window: UIWindow?
的让关键字来定义常量。而且它的价值不能在后面改变。 Var用于定义变量。
您可以在不声明变量的情况下尝试以上代码行。它肯定会给你一个错误。
谢谢,我认为这是最合适的解释 – Henry 2014-11-03 05:50:22