1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Intermediate R

Connected

cvičení

R předává argumenty hodnotou

Název to prozrazuje: R předává argumenty hodnotou. Co to znamená? Jednoduše řečeno, funkce v R nemůže změnit proměnnou, kterou do ní předáš. Podívejme se na jednoduchý příklad (vyzkoušej si ho v konzoli):

triple <- function(x) {
  x <- 3*x
  x
}
a <- 5
triple(a)
a

Uvnitř funkce triple() se argument x přepíše svou trojnásobnou hodnotou a toto nové x se vrátí jako výsledek. Když funkci zavoláš s proměnnou a rovnou 5, dostaneš 15. Ale změnila se hodnota a? Kdyby R předávalo a do triple() odkazem, přepsání x uvnitř funkce by se projevilo i v proměnné a vně funkce. Jenže R předává hodnotou, takže objekty, které funkci předáš, se nikdy nezmění — pokud neproveteš explicitní přiřazení. a zůstane rovno 5, i po zavolání triple(a).

Dokážeš určit, které z následujících tvrzení je o níže uvedeném kódu nepravdivé?

increment <- function(x, inc = 1) {
  x <- x + inc
  x
}
count <- 5
a <- increment(count, 2)
b <- increment(count)
count <- increment(count, 2)

Pokyny

50 XP

Možné odpovědi