Valores de Retorno
Parte da seção Fundamentos do Journey de R da Coddy — lição 48 de 78.
Até agora, nossas funções imprimiram a saída diretamente. Mas muitas vezes você quer que uma função calcule um valor e o envie de volta para que você possa usá-lo em outro lugar do seu código. É aqui que entram os valores de retorno.
Use a função return() para retornar um valor da sua função:
add <- function(a, b) {
return(a + b)
}
result <- add(5, 3)
print(result)Saída:
[1] 8Em vez de imprimir dentro da função, retornamos a soma. O valor retornado pode então ser armazenado em uma variável, usado em cálculos ou passado para outras funções.
Isso torna as funções muito mais versáteis:
double <- function(x) {
return(x * 2)
}
print(double(5) + double(3))Saída:
[1] 16Em R, se você não usar return(), a função retorna automaticamente a última expressão avaliada. No entanto, usar return() explicitamente torna seu código mais claro e é especialmente útil quando você deseja sair de uma função antecipadamente.
Desafio
FácilCrie uma função chamada calculate_power que receba dois argumentos: base e exponent. A função deve retornar o resultado de elevar a base à potência do expoente (usando o operador ^).
Leia dois números da entrada, converta-os em valores numéricos e chame sua função. Armazene o valor retornado em uma variável chamada result e, em seguida, imprima result.
Por exemplo, se as entradas forem 2 e 3, a saída deve ser:
[1] 8Se as entradas forem 5 e 2, a saída deve ser:
[1] 25Folha de consulta
As funções podem retornar valores usando a função return(). Isso permite que você armazene o resultado em uma variável ou o utilize em outras operações:
add <- function(a, b) {
return(a + b)
}
result <- add(5, 3)
print(result) # [1] 8Os valores retornados podem ser usados diretamente em expressões:
double <- function(x) {
return(x * 2)
}
print(double(5) + double(3)) # [1] 16No R, as funções retornam automaticamente a última expressão avaliada se o return() não for usado. No entanto, o uso explícito do return() torna o código mais claro e permite saídas antecipadas das funções.
Experimente você mesmo
# Ler a entrada
con <- file("stdin", "r")
base <- as.numeric(suppressWarnings(readLines(con, n = 1)))
exponent <- as.numeric(suppressWarnings(readLines(con, n = 1)))
# TODO: Criar uma função chamada calculate_power que recebe base e exponent
# e retorna a base elevada à potência do expoente usando o operador ^
# TODO: Chame sua função com os valores de entrada e armazene o resultado em 'result'
# Exibir o resultado
print(result)Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 2
Operadores Lógicos (AND, OR)Operadores Lógicos Parte 2 (NOT)Recapitulação - Lógica SimplesLógica Vetorizada Parte 1Lógica Vetorizada Parte 27Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo a Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoA Função FizzBuzz2Variáveis e Tipos de Dados
Tipo de Dado NuméricoTipo de Dado InteiroTipo de Dado CaractereTipo de Dado LógicoVerificando Tipos de DadosConvenções de NomenclaturaValores Ausentes: NARecapitulação - Criação de Variáveis8Laços de Repetição
Laço ForLaço WhileBreakNext (Continue)Recapitulação - FatorialGeração de Sequências (seq, :)Laços AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosDivisão Inteira e MóduloOperadores de AtribuiçãoRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com PrintCat para SaídaSaída com VariáveisLendo Entrada com readline()Básico de Conversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Funções
Declarando uma FunçãoArgumentos de FunçãoValores de RetornoRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores de Parâmetro Padrão