Системы раннего предупреждения

Защитное программирование на R

Dr. Colin Gillespie

Jumping Rivers

Системы раннего предупреждения

  • По возможности избегайте ошибок
  • Грамотно обрабатывайте проблемы по мере их возникновения

Например, использование сокращений T/F вместо TRUE/FALSE

Защитное программирование на R

Проблема 1: TRUE и FALSE

  • TRUE и FALSE — специальные значения
  • Переопределить их нельзя
TRUE <- 5
# Error in TRUE <- 5 : invalid (do_set) left-hand side to assignment
Защитное программирование на R

Проблема 2: TRUE и FALSE

Предположим, мы вычисляем F-статистику. Было бы естественно написать

# df is the F-density function
(F <- df(1, 9, 67))
[1] 0.7798

Однако R интерпретирует положительные числа как TRUE, поэтому

if(F) message("Yer aff yer heid!")
Yer aff yer heid!

F теперь воспринимается как TRUE!

Защитное программирование на R
  • Возьмите за правило использовать TRUE и FALSE
    • а не T и F
      • Для проверки на TRUE используйте isTRUE()
isTRUE(T)
[1] TRUE
isTRUE(2)
[1] FALSE
T <- 10
isTRUE(T)
[1] FALSE
Защитное программирование на R

Давайте потренируемся!

Защитное программирование на R

Preparing Video For Download...