Avatar ·

Qual a diferença entre crases (``) e aspas duplas ("") em Go?

Olá a todos! Comecei a estudar Go e notei que strings podem ser declaradas de duas formas: com aspas duplas e com crases (backticks). Por exemplo: ```go str1 := "Olá, mundo!" str2 := `Olá, mundo!` ``` À primeira vista, não há diferença — ambas funcionam. Mas tentei criar uma string multilinha com aspas duplas e obtive um erro de compilação. Já com crases funciona: ```go // Erro! // str3 := "Linha\nem duas linhas" // Funciona str4 := `Linha em duas linhas` ``` Também notei que dentro de aspas duplas podemos usar escape sequences como \n, \t, \\, enquanto nas crases elas são exibidas literalmente como texto: ```go fmt.Println("String com\nquebra de linha") // Quebra de linha real fmt.Println(`String com\nquebra de linha`) // Exibe literalmente \n ``` Mas não entendo completamente quando usar cada uma. Existem armadilhas? Por exemplo, como lidar com muitas barras invertidas ou c