Wartości zwracane
Część sekcji Podstawy ścieżki R w Coddy. Lekcja 48 z 78.
Do tej pory nasze funkcje wypisywały dane wyjściowe bezpośrednio. Często jednak chcesz, aby funkcja obliczyła wartość i zwróciła ją, żeby można było użyć jej w innym miejscu kodu. Właśnie do tego służą wartości zwracane.
Użyj funkcji return(), aby zwrócić wartość z funkcji:
add <- function(a, b) {
return(a + b)
}
result <- add(5, 3)
print(result)Wynik:
[1] 8Zamiast wyświetlać wynik wewnątrz funkcji, zwracamy sumę. Zwróconą wartość można następnie zapisać w zmiennej, użyć w obliczeniach lub przekazać innym funkcjom.
Dzięki temu funkcje są znacznie bardziej wszechstronne:
double <- function(x) {
return(x * 2)
}
print(double(5) + double(3))Wynik:
[1] 16W R, jeśli nie użyjesz return(), funkcja automatycznie zwraca ostatnie obliczone wyrażenie. Jednak jawne użycie return() sprawia, że kod jest czytelniejszy, i jest szczególnie przydatne, gdy chcesz wcześniej zakończyć działanie funkcji.
Wyzwanie
ŁatwyUtwórz funkcję o nazwie calculate_power, która przyjmuje dwa argumenty: base i exponent. Funkcja powinna return zwracać wynik podniesienia liczby base do potęgi exponent (za pomocą operatora ^).
Odczytaj z wejścia dwie liczby, przekonwertuj je na wartości liczbowe i wywołaj swoją funkcję. Zapisz zwróconą wartość w zmiennej o nazwie result, a następnie wyświetl result.
Na przykład, jeśli danymi wejściowymi są 2 i 3, wynikiem powinno być:
[1] 8Jeśli danymi wejściowymi są 5 i 2, wynikiem powinno być:
[1] 25Spróbuj swoich sił
# Wczytaj dane wejściowe
con <- file("stdin", "r")
base <- as.numeric(suppressWarnings(readLines(con, n = 1)))
exponent <- as.numeric(suppressWarnings(readLines(con, n = 1)))
# TODO: Utwórz funkcję o nazwie calculate_power, która przyjmuje base i exponent
# i zwraca base podniesioną do potęgi exponent za pomocą operatora ^
# TODO: Wywołaj swoją funkcję z wartościami wejściowymi i zapisz wynik w 'result'
# Wyświetl wynik
print(result)Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 2
Operatory logiczne (AND, OR)Operatory logiczne, część 2 (NOT)Powtórka — prosta logikaLogika wektoryzowana, część 1Logika wektoryzowana, część 27Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika10FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz2Zmienne i typy danych
Liczbowy typ danychCałkowity typ danychZnakowy typ danychLogiczny typ danychSprawdzanie typów danychKonwencje nazewnictwaBrakujące wartości: NAPodsumowanie – tworzenie zmiennych8Pętle
Pętla forPętla whilePrzerwijNastępna iteracja (continue)Powtórka — silniaGenerowanie sekwencji (seq, :)Pętle zagnieżdżonePowtórka — dynamiczne wprowadzanie danych3Operatory, część 1
Operatory arytmetyczneDzielenie całkowite i moduloOperatory przypisaniaPowtórka — prosta matematykaOperatory porównania6Podstawowe wejście/wyjście
Wyświetlanie danychCat jako wyjścieWyjście z użyciem zmiennychOdczyt danych wejściowych za pomocą readline()Podstawy konwersji typówPowtórka — kalkulator wiekuPowtórka — prawda czy fałsz9Funkcje
Deklarowanie funkcjiArgumenty funkcjiWartości zwracanePowtórzenie — funkcja SigmaPowtórzenie — funkcja walidującaDomyślne wartości parametrówPoćwicz samodzielnie: Kompilator R online