2014-06-18 59 views
1

恆定當我讀到的swift guide它說:The value of a constant doesn’t need to be known at compile time, but you must assign it a value exactly once.聲明中迅速

我試着在REPL但沒有任何運氣:

let aConst; 
aConst=23; 

那麼如何聲明常數不設定初始值?

回答

2

let myConstant = getSomeValueFromMethod() 

這是什麼意思,該值沒有在編譯時被稱爲...

+0

這很有道理! – sakhunzai

1

您不能聲明常量,然後在全局範圍內指定它。如果你必須這樣做,請改用一個變量。當在全局範圍聲明一個常量時,它必須用一個值初始化。

Docs

+1

但什麼這是否意味着「在編譯時不需要知道常量的值」? – sakhunzai

+0

您也可以將常量作爲類的屬性。那些不需要用值來聲明。 – connor

+0

編譯時不需要知道常量的值,但必須爲其賦值一次。這意味着你可以使用常量來命名一個你確定一次但在許多地方根據apple doc使用的值。 – ldindu

0

你不能只是聲明一個常量而不分配它某種價值。編譯器需要知道常量會有某種價值。考慮下面的例子,其中常量「isTablet」是根據直到運行時才知道的變量計算的。

let isTablet = { 
    if (UIDevice.currentDevice().userInterfaceIdiom == .Pad) { 
     return true 
    } else { 
     return false 
    } 
}() 
0

Suthan的旁邊又如:

VAR someVar:NSString的

...

someVar = 「一些字符串」

讓someUnknownConstant = someVar