variable uso tipos que invertidas invertida escapar declara concatenar como comillas comilla cadenas banderas string go

string - uso - No se puede asignar cadena con comillas simples en golang



tipos de comillas en js (2)

Estoy aprendiendo a ir y cuando toco con una cuerda noté que si una cadena está entre comillas simples, Golang me está dando un error, pero las comillas dobles funcionan bien.

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

Este es el error que recibo en mi sistema:

illegal rune literal

Mientras que cuando intento hacer lo mismo en el patio de recreo, obtengo este error:

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 ''

No puedo entender la razón exacta detrás de esto como en, por ejemplo, Python, Perl uno puede declarar una cadena con comillas simples y dobles.


En Go, ''⌘'' representa un solo carácter (llamado Rune), mientras que "⌘" representa una cadena que contiene el carácter .

Esto es cierto en muchos lenguajes de programación donde la diferencia entre cadenas y caracteres es notable, como C ++.

Echa un vistazo a la sección "Puntos de código, caracteres y runas" en Go Blog on Strings


Go es un lenguaje estáticamente tipado. También GO no es un lenguaje de scripting. Aunque vemos que GO está ejecutando como un lenguaje de scripting, está compilando la fuente que escribimos y luego ejecutamos la función principal. Por lo tanto, debemos tratar a GO como C, JAVA, C++ donde la comilla simple '''' se utiliza para declarar caracteres ( rune, char ) a diferencia de los lenguajes de script como Python o JavaScript.

Creo que como este es un nuevo lenguaje, y la tendencia actual está en los lenguajes de scripting, se ha producido esta confusión.