2016-01-09 12 views
9

Sto imparando andare e quando si gioca con la stringa ho notato che se la stringa è in virgoletta singola, golang sta dando un errore ma le doppie virgolette stanno funzionando bene.Impossibile assegnare una stringa con virgoletta singola in golang

func main() { 
    var a string 
    a = 'hello' //will give error 
    a = "hello" //will not give error 
} 

Questo è l'errore che ottengo sul mio sistema

illegal rune literal 

mentre quando cerco di fare lo stesso sul campo da giuoco sto ottenendo questo errore

prog.go:9: missing ' 
prog.go:9: syntax error: unexpected name, expecting semicolon or newline or } 
prog.go:9: newline in string 
prog.go:9: empty character literal or unescaped ' in character literal 
prog.go:9: missing ' 

io non sono in grado di capisci la ragione esatta alla base di questo come in ex python, perl si può dichiarare una stringa con virgolette singole e doppie.

+3

Altre lingue trattano qualsiasi non-spazi come commento e tutte le parole chiave sono fatte di spazi, tabulazioni e ritorni a capo. "Altre lingue" non è una buona argomentazione, non per i linguaggi di programmazione e non per le lingue naturali. – Volker

risposta

31

In Go, '⌘' rappresenta un singolo carattere (denominato Runa), mentre "⌘" rappresenta una stringa contenente il carattere .

Questo è vero in molti linguaggi di programmazione in cui è notevole la differenza tra stringhe e caratteri, come C++.

Scopri i "punti di codice, personaggi e rune" sezione nelle Go Blog on Strings

+4

Puoi anche usare i \ 'blah \' 'tick indietro per una stringa grezza. – Datsik

Problemi correlati