1. Обучение
  2. /
  3. Курса
  4. /
  5. Середній рівень R

Connected

упражнение

R передає аргументи за значенням

Заголовок уже підказує: R передає аргументи за значенням. Що це означає? Простіше кажучи, функція R не може змінити змінну, яку ви передаєте цій функції. Розгляньмо простий приклад (спробуйте в консолі):

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

Усередині функції triple() аргумент x перезаписується значенням, помноженим на три. Після цього повертається новий x. Якщо викликати цю функцію зі змінною a, що дорівнює 5, ви отримаєте 15. Але чи змінилося значення a? Якби R передавав a у triple() за посиланням, то перезапис x всередині функції вплинув би на змінну a поза функцією. Однак R передає за значенням, тож об'єкти R, які ви передаєте у функцію, ніколи не змінюються, якщо ви явно не виконуєте присвоєння. a залишається рівним 5, навіть після виклику triple(a).

Чи можете ви вказати, яке з наведених нижче тверджень є хибним щодо такого фрагмента коду?

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

Инструкции

50 XP

Возможные ответы