Parâmetros com valor default nas funções em Kotlin

Exatamente assim como em diversas linguagens modernas, Kotlin também aceita valores default nos parâmetros das funções.

Esses valores padrões são utilizados quando um argumento é omitido, tornando o parâmetro correspondente opcional. Isso permite reduzir o número de overloads se comparado com outras linguagens.

Confira aqui um exemplo:

fun fazAlgo(param1: Array<Byte>, param2: Int = 0, param3: Int = param1.size) {
	// Código da função fazAlgo
}

Repare o seguinte:

  • O valor padrão do parâmetro param3 é exatamente o tamanho do array do param1. Isso é simplesmente sensacional! Ponto para o Kotlin. 😀
  • Os valores default são definidos utilizando o sinal = logo depois da definição do seu respectivo tipo.

Os métodos sobrepostos sempre usarão o valor default do parâmetro do método base. Quando um método for sobreposto a partir de um que tenha um valor padrão nos parâmetros, o valor deve ser omitido em sua assinatura. Olha só um exemplo:

open class A {
    open fun foo(i: Int = 10) { ... }
}

// Método B sobreposto a partir de A
class B : A() {
    override fun foo(i: Int) { ... }  // sem valor default
}

Legal né?

Queremos saber sua opinião