2014-06-18 4 views
1

Comme je l'ai lu le swift guide il est dit: The value of a constant doesn’t need to be known at compile time, but you must assign it a value exactly once.Déclarant une constante dans rapide

J'ai essayé dans REPL mais sans chance:

let aConst; 
aConst=23; 

Alors, comment déclarer une constante sans mise en valeur initiale?

Répondre

2

Exemple

let myConstant = getSomeValueFromMethod() 

C'est ce que cela signifie que la valeur ne doit pas être connu au moment de la compilation ...

+0

Cela a du sens! – sakhunzai

1

Vous ne pouvez pas déclarer une constante, puis l'affecter à l'étendue globale. Si vous devez faire quelque chose comme ça, utilisez plutôt une variable. Lorsqu'une constante est déclarée à l'échelle globale, elle doit être initialisée avec une valeur.

Docs

+1

Mais ce cela signifie-t-il que la valeur d'une constante n'a pas besoin d'être connue au moment de la compilation? – sakhunzai

+0

Vous pouvez également avoir des constantes comme propriétés des classes. Ceux-ci ne doivent pas être déclarés avec une valeur. – connor

+0

La valeur d'une constante n'a pas besoin d'être connue au moment de la compilation, mais vous devez lui attribuer une valeur exactement une fois. Cela signifie que vous pouvez utiliser des constantes pour nommer une valeur que vous déterminez une fois, mais que vous utilisez dans de nombreux endroits, selon le document Apple. – ldindu

0

Vous ne pouvez pas simplement déclarer une constante sans lui attribuer une sorte de valeur. Le compilateur doit savoir que la constante aura une sorte de valeur. Considérons l'exemple suivant où une constante "isTablet" est calculée sur la base de variables qui ne sont pas connues avant l'exécution.

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

Un autre exemple à côté de Suthan:

var someVar: NSString

...

someVar = "ficelle"

laisser someUnknownConstant = someVar