Systémy včasného varování

Defenzivní programování v R

Dr. Colin Gillespie

Jumping Rivers

Systémy včasného varování

  • Předcházejte problémům, pokud je to možné
  • Řešte problémy rozumně, když nastanou

Příkladem je použití zkratek T/F místo TRUE/FALSE

Defenzivní programování v R

Problém 1: TRUE a FALSE

  • TRUE a FALSE jsou speciální hodnoty
  • Nelze je přepsat
TRUE <- 5
# Error in TRUE <- 5 : invalid (do_set) left-hand side to assignment
Defenzivní programování v R

Problém 2: TRUE a FALSE

Předpokládejme, že počítáme F-statistiku. Bylo by přirozené použít

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

R však považuje kladná čísla za TRUE, takže

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

F je nyní považováno za TRUE!

Defenzivní programování v R
  • Zvykněte si používat TRUE a FALSE
    • nikoli T a F
      • Při testování na TRUE použijte isTRUE()
isTRUE(T)
[1] TRUE
isTRUE(2)
[1] FALSE
T <- 10
isTRUE(T)
[1] FALSE
Defenzivní programování v R

Pojďme si trochu procvičit

Defenzivní programování v R

Preparing Video For Download...