🔗 Tarefa
Substitua a chamada trimIndent
pela chamada trimMargin
, definindo #
como valor de prefixo, assim a string resultante não conterá o caractere de prefixo.
Há funções como trimIndent
e trimMargin
que servem para formatar strings de múltiplas linhas com aspas triplas conforme o contexto do código.
Caso de uso
Em Kotlin, as aspas triplas (multiline strings
) facilitam a representação de Strings com várias linhas e caracteres especiais, eliminando a necessidade de escapá-los.
Esta técnica realça a clareza do código e simplifica a gestão de textos longos ou com estruturas intrincadas.
Utilizando um par de três aspas """ """
, é possível declarar um texto de múltiplas linhas em Kotlin.
val texto = """
Esta é uma string que contém
várias linhas
sem a necessidade de caracteres de escape.
"""
Neste contexto, sequências como \n
(nova linha) e \t
(tabulação) são interpretadas literalmente como texto, sem receber tratamento
especial.
Vantagens
- Simplicidade: facilidade para trabalhar com textos longos ou com formatações específicas.
- Escape de caracteres não é necessário: caracteres especiais não precisam ser "escapados", melhorando a clareza e a legibilidade do código.
- Oferecem um tipo de modelo de String, facilitando a incorporação de valores dinâmicos em textos e tornando a manipulação de strings mais versátil.
Desvantagens
-
Espaço em branco indesejado pode ser evitado utilizando funções como
trimMargin()
etrimIndent()
para remover esses espaços extras. - Menos suporte em algumas IDEs embora seja raro, é possível que algumas IDEs e ferramentas de edição de texto enfrentam desafios na coloração de sintaxe ou na formatação automática.
- Problemas de desempenho: em algumas situações, como loops intensivos, seu uso excessivo pode levar a problemas de desempenho.
Analogia
As aspas triplas em Kotlin são como os murais nas paredes. Um mural não é interrompido por molduras ou limites, permitindo que a arte se estenda por toda a superfície sem interrupção.
val coracao = """
,d88b.d88b,
88888888888
`Y8888888Y'
`Y888Y'
`Y'
"""
Top comments (0)