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, 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é?