在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