2016-08-08 4 views
0

Ein Literal ist der Quellcode Darstellung eines Wertes von einem Typ, wie beispielsweise eine Zahl oder eine ZeichenketteEmoji kann kein Literal sein und was sonst noch?

Es gibt 3 Arten von Literalen in Swift: Integer Literale, Gleitkommatypen Literale und String-Literale (bitte korrigieren Sie mich, wenn ich falsch liege), bedeutet das (My Guess) alle Elemente, die nicht zu einem Typ von Integer gehören, Floating oder String wird nicht als ein Literal betrachtet, und wird ausgelöst Fehler bei Verwendung als Literale

Nach dem, was ich denke, ich habe diese versucht let aEmoji =

enter image description here

Question1: Ist meine Vermutung richtig? Wenn nicht, schätze ich, dass Sie mich korrigieren können.

Question2: Gibt es noch etwas anderes sollte nicht als Literal verwenden? (Wäre schön, könnten Sie mir einige Beispiele)

Dank

+3

'true' und' false' (Boolesche Werte) sind auch Literale in Swift, sowie Arrays, Wörterbücher und wahrscheinlich ein paar andere, die ich Ich vermisse. –

+1

Sowie die 'nil' und Zeichen wörtlich – Hamish

+0

@SLN Sie fühlen, dass Ihre Qesution erfüllt wurde, bitte akzeptieren Sie eine der Antworten. – Alexander

Antwort

3
  1. Ja, alles, was kein ganzzahliges Literal (1) ist, Gleitkommazahlen literal (1.0) oder Stringliteral ("foo"), Arrayliteral ([foo]), Wörterbuch literal ([foo : bar]), bool Literal (true/false) ist kein Literal und würde einen Fehler verursachen.

  2. Alles, was nicht zu den obigen Literalen gehört, ist kein Literal und könnte einen Fehler verursachen (wenn es sich um eine ungültige Syntax handelt).

können Sie machen ein Emoji in einem Stringliteral setzen, aber: let aEmoji = ""

+0

Vielen Dank Alex") – SLN

3

Ein Zeichenfolgenliteral ist in doppelte Anführungszeichen eingewickelt

let aEmoji = "" 

Vom documentation:

Ein Zeichenfolgenliteral ist eine feste Folge von Textzeichen
umgeben von einem doppelten Anführungszeichen ("").

+0

Thx für das Beispiel – SLN

2

Sie können Emojis im wörtlichen String oder Zeichenausdruck enthalten, indem Sie sie mit Anführungszeichen zu setzen.

Der Typ inferrer wird den Ausdruck standardmäßig auf ein String-Literal setzen, es sei denn, der Typ Character ist angegeben.

let unicornString = "" 
let unicornChar : Character = "" 

Else der Compiler die emoji (oder jede Unicodezeichenfolge) als Identifikator behandeln (weil emoji Variablennamen und so beschaffen sein kann).


Die folgende wäre gültig:

let = "myPassword" 
user.authenticateWithPassword() 
+1

oh .. Das muss der Grund sein, warum der Compiler "Verwendung von unaufgelösten Bezeichner" ergibt, da es das Smile Emoji hier als Bezeichner behandelt und natürlich Ich habe es überhaupt nicht erklärt. – SLN

Verwandte Themen