Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Kotlin o que é o \r ? Quando e como usar?

Estou estudando caracteres de escape e tem o \r que não entendi o seu uso.

Criei um código de estudo para testar uns caracteres e ver seu comportamento, mas ao usar o \r ele ignorou a primeira variável e só mostrou a segunda.

Veja meu código

fun main() { val titulo = "Curso sobre" val subtitulo = "Kotlin" // \b, \n, \r, \t, ', ", \ e $ val escapes = "\r" println(titulo + escapes + subtitulo) }

Console: Kotlin

Gostaria de saber então é: 1) O que é o \r ? 2) Quando usar? 3) Como usar? 4) Por que ele "ignorou" a variavel titulo?

4 respostas
solução!

Olá Alexandre, o caracter de escape \r representa o retorno de carro (carriage return) e é usado para mover o cursor do terminal ou de um editor de texto para o início da linha.

Quando você imprime uma string contendo o caracter \r, ele faz o cursor voltar para o início da linha, e o que vier depois substituirá o conteúdo que já estava naquela linha. No seu exemplo, o conteúdo da variável escapes é apenas um \r, então ele volta para o início da linha e imprime "Kotlin" por cima de "Curso sobre".

O uso do \r é mais comum em programas que precisam atualizar informações em tempo real na tela, como por exemplo em programas de monitoramento de logs ou em jogos. Quando uma nova informação precisa ser exibida, é comum usar o \r para voltar para o início da linha e imprimir a nova informação por cima da antiga.

Se você quiser usar o \r para imprimir a string completa do título e subtitulo em uma única linha, pode fazer assim:

fun main() {
    val titulo = "Curso sobre"
    val subtitulo = "Kotlin"
    val linha = titulo + " " + subtitulo
    // \b, \n, \r, \t, ', ", \ e $
    val escapes = "\r"
    print(linha + escapes)
}

Este código irá imprimir "Curso sobre Kotlin" em uma única linha, e ao usar o \r, você pode atualizar a informação no mesmo lugar sempre que precisar.

Espero ter ajudado! Se tiver mais alguma dúvida, é só perguntar.

Quanto ao seu código, o \r está fazendo com que o cursor retorne para o início da linha, e assim o subtitulo "Kotlin" sobrescreve o título "Curso sobre". Para utilizar o \r corretamente, você deve utilizá-lo em conjunto com o \n para indicar uma nova linha. Por exemplo:

fun main() {
    val titulo = "Curso sobre"
    val subtitulo = "Kotlin"
    // \b, \n, \r, \t, \', \", \\ e \$
    val escapes = "\r\n"
    println(titulo + escapes + subtitulo)
}

Dessa forma, o \r\n indica uma nova linha e o título e o subtitulo são impressos em linhas diferentes.

muito obrigado Otávio

De nada, Alexandre! Estamos sempre à disposição para ajudar. Bons estudos!