Невыполнение оператора при вызове функции - PullRequest
1 голос
/ 08 апреля 2019

Работая над какой-то проблемой, я столкнулся с ситуацией, в которой я хотел узнать, была ли выполнена функция при вызове. Для этого я поместил оператор print в функцию.

abc = function(x)
    if(x > 0) {
      return(x)
      print("Go")
    } else {
      return(0)
      print("Run")
    }

y = abc(3)
y
# [1] 3

Почему оператор print не выполняется при вызове abc ()?

1 Ответ

1 голос
/ 08 апреля 2019

Это потому, что вы return думаете до print.Измените последовательность этих двух операторов, и это должно вывести

abc = function(x) {
    if(x > 0) {
      print("Go")
      return(x)
    } else {
      print("Run")
      return(0)
   }
}

abc(3)
#[1] "Go"
#[1] 3

abc(-3)
#[1] "Run"
#[1] 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...