1
resposta

trimMargin

Olá! Durante o curso o programa reagiu de forma diferente do programa do professor, criando o código desta maneira:

class Endereco( var logradouro: String = "", var numero: Int = 0, var bairro: String = "", var cidade: String = "", var estado: String = "", var cep: String = "", var complemento: String = "" ){ override fun toString(): String { return """Endereco(logradouro='$logradouro', |numero=$numero, |bairro='$bairro', |cidade='$cidade', |estado='$estado', |cep='$cep', |complemento='$complemento') |""".trimMargin() } }

Não sei se é por ser versão diferente ou se fiz algo errado.

Não saquei a diferença do trimMargin para o trimIndent mas no final a exibição foi a mesma.

1 resposta

Bom dia Felipe, tudo certo?

A função trimIndent() detecta um recuo mínimo comum de todas as linhas de entrada, remove-o de todas as linhas e também remove a primeira e a última linha, se estiverem em branco.

val trimIndent =
        """
            123
            456
            789
        """.trimIndent()

println(trimIndent)

A função trimMargin() usa um marginPrefix, que por padrão é o char '|', para identificar o recuo comum de todas as linhas de entrada e remove-lo, além de também remover a primeira e a última linha, se estiverem em branco.

val trimMargin =
        """
            |123
            |456
            |789
        """.trimMargin()

println(trimMargin)

Observação: outros caracteres podem ser usados como marginPrefix, para isso basta passar como parâmetro da função o caracter desejado.

val trimMargin =
        """
            $123
            $456
            $789
        """.trimMargin(prefix = '$')

println(trimMargin)

Por experiência própria, gosto sempre de utilizar o trimMargin(), pois a outra opção gera alguns erros de formatação um pouco chatos de lidar já que detecta o recuo comum automaricamente.

Espero ter ajudado :D

Tmj!