English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste artigo, você vai aprender sobre funções. O que é uma função, sua sintaxe e como criar funções definidas pelo usuário em Kotlin.
Em programação, uma função é um grupo de instruções relacionadas que executam uma tarefa específica.
As funções são usadas para dividir programas grandes em módulos modularizados. Por exemplo, você precisa criar círculos com base na entrada do usuário e coloriá-los. Você pode criar duas funções para resolver esse problema:
função createCircle() - usado para criar círculos
função colorCircle() - usado para preencher cor
Dividir programas complexos em componentes menores torna nossos programas mais organizados e mais fáceis de gerenciar.
Além disso, evita repetições e torna o código mais reutilizável.
Existem dois tipos de funções dependendo se são funções definidas pelo usuário ou funções da biblioteca padrão:
Funções da biblioteca padrão do Kotlin
Função definida pelo usuário
As funções da biblioteca padrão são funções integradas no Kotlin que podem ser usadas a qualquer momento. Por exemplo,
print() é uma função da biblioteca que pode imprimir mensagens na saída padrão (monitor).
sqrt() retorna a raiz quadrada do número (valor Double)
fun main(args: Array<String>) { var number = 5.5 print("Result = ${Math.sqrt(number)}") }
Quando executado, o programa gera a saída:
Result = 2.345207879911715
Isso éBiblioteca Padrão do Kotlinpara navegar.
Como mencionado anteriormente, você pode criar suas próprias funções. Essas funções são chamadas de funções definidas pelo usuário.
Antes de usar (chamar) uma função, é necessário definí-la primeiro.
A maneira de definir uma função em Kotlin é a seguinte:
fun callMe() { //Corpo da função }
Para definir uma função em Kotlin, use a palavra-chave fun. Em seguida, o nome da função (Identificador)。Aqui, o nome da função é callMe.
No programa acima, os parênteses ( ) estão vazios. Isso significa que a função não aceita nenhum parâmetro. Você vai aprender sobre parâmetros na parte posterior do artigo.
O código dentro dos colchetes { } é o corpo da função.
Você deve chamar essa função para executar código dentro da função. Veja como fazer isso:
callme()
Esta instrução chama a função callMe() declarada anteriormente.
fun callMe() { println("Impressão da função callMe().") println("Isso é legal (ainda sendo impresso dentro).") } fun main(args: Array<String>) { callMe() println("Impressão externa da função callMe().") }
Quando executado, o programa gera a saída:
Impressão da função callMe(). Isso é legal (ainda sendo impresso dentro). Impressão externa da função callMe().
A função callMe() no código acima não aceita nenhum parâmetro.
Além disso, a função não retorna nenhum valor (o tipo de retorno é Unit).
Vamos ver outro exemplo de função. A função aceita parâmetros e retorna um valor.
fun addNumbers(n1: Double, n2: Double): Int { val sum = n1 + n2 val sumInteger = sum.toInt() return sumInteger } fun main(args: Array<String>) { val number1 = 12.2 val number2 = 3.4 val result: Int result = addNumbers(number1, number2) println("result = $result") }
Quando executado, o programa gera a saída:
result = 15
Aqui, durante a chamada da função, dois parâmetros do tipo Double number1e number2Passados para a função addNumbers(). Esses parâmetros são chamados de parâmetros reais (ou parâmetros reais).
result = addNumbers(number1, number2)
O parâmetro n1e n2Aceita os parâmetros passados (nosso tipo de definição da função). Esses parâmetros são chamados de parâmetros formais (ou parâmetros formais).
No Kotlin, os parâmetros são separados por vírgulas. Da mesma forma, os tipos dos parâmetros formais devem ser explicitamente especificados.
Atenção, os tipos de dados dos parâmetros reais e dos parâmetros formais devem coincidir, ou seja, o tipo de dados do primeiro parâmetro real deve coincidir com o tipo do primeiro parâmetro formal. Da mesma forma, o tipo do segundo parâmetro real deve coincidir com o tipo do segundo parâmetro formal, e assim por diante.
Aqui,
return sumInteger
É a instrução return. Este código termina a função addNumbers(), e o controle do programa passa para a função main().
No programa, sumInteger é retornada pela função addNumbers(). Este valor é atribuído à variável result.
Atenção,
sumInteger e result são do tipo Int.
O tipo de retorno da função é especificado na definição da função.
//O tipo de retorno é Int fun addNumbers(n1: Double, n2: Double): Int { ... .. ... }
Se a função não retornar nenhum valor, seu tipo de retorno é Unit. Se o tipo de retorno for Int, pode-se especificar o tipo de retorno na definição da função.
fun main(args: Array<String>) { println(getName("John", "Doe")) } fun getName(firstName: String, lastName: String): String = "$firstName $lastName"
Quando executado, o programa gera a saída:
John Doe
Aqui, a função getName() aceita dois parâmetros do tipo String e retorna String.
Se a função retornar uma única expressão (como no exemplo acima), pode-se omitir os chavés {} do corpo da função e especificar o corpo após o símbolo =.
Neste caso, a declaração explícita do tipo de retorno é opcional, pois o tipo de retorno pode ser inferido pelo compilador. No exemplo acima, você pode substituir
fun getName(firstName: String, lastName: String): String = "$firstName $lastName"
Equivalente a:
fun getName(firstName: String, lastName: String) = "$firstName $lastName"