5
respostas

Duvida sobre concatenação

No código seguinte: ambos os Println dão um espaço obrigatorio entre a variavel e o texto entre aspas após ela, como removo esse espaço? obs: estou usando o visualStudioCode

package main

import "fmt"

func main() { var S string fmt.Scan(&S) //fmt.Println("Thank you,", S, ", and farewell!")

fmt.Println("Thank you,", S, "!")

}

5 respostas

o println sempre executará um espaço após a virgula, recomendo usar o fmt.Sprintf("Thank you %v!", S). O %v irá trazer o valor da variável declarada após a virgula

Em caso de querer manter a linha colocar \n depois da exclamação e antes de fechar a aspas

Não funcionou aqui comigo:

package main

import "fmt"

func main() { var S string fmt.Scan(&S) //fmt.Println("Thank you,", S, ", and farewell!")

fmt.Sprintf("Thank you,%v", S)

}

Olá!

A função func fmt.Sprintf(format string, a ...interface{}) string não imprime no terminal. Ela retorna uma string formatada.

Tente usar a função func fmt.Printf(format string, a ...interface{}) (n int, err error)

package main

import "fmt"

func main() {
    var S string
    fmt.Scan(&S)
    fmt.Printf("Thank you,%v", S)
}

Ou, continue usando a função func fmt.Sprintf(format string, a ...interface{}) string, assim:

package main

import "fmt"

func main() {
    var S string
    fmt.Scan(&S)
    var F string = fmt.Sprintf("Thank you,%v", S)
    fmt.Println(F)
}

Se esta resposta ajudou, lembre-se de marcar este tópico como resolvido.

Boa Franclin, tinha me esquecido que o sprintf exige um var de receiver pra depois printar kkkk. Onde trabalho utilizamos logger ai não uso muito. Obrigado por complementar