R
関数内でグローバル変数が使用されている場合に警告をスローする(そして失敗する)方法はありますか?私はそれがはるかに節約であり、意図しない行動を防ぐと思います...例:
sUm <- 10
sum <- function(x,y){
sum = x+y
return(sUm)
}
戻り値の「タイプミス」により、関数は常にを返し10
ます。その値を返す代わりにsUm
失敗するはずです。
私の他の答えは、関数内でどのようなアプローチを取ることができるかについてです。次に、関数が定義されたらどうするかについての洞察を提供します。
関数がグローバル変数を使用すべきでないときに使用しないようにするには、codetools
パッケージを使用します。
library(codetools)
sUm <- 10
f <- function(x, y) {
sum = x + y
return(sUm)
}
checkUsage(f)
これにより、メッセージが出力されます。
<anonymous> local variable ‘sum’ assigned but may not be used (:1)
関数でグローバル変数が使用されているかどうかを確認するには、findGlobals()
関数の出力をグローバル環境の変数と比較します。
> findGlobals(f)
[1] "{" "+" "=" "return" "sUm"
> intersect(findGlobals(f), ls(envir=.GlobalEnv))
[1] "sUm"
これは、グローバル変数sUm
がf()
おそらく使用されるべきではなかったときに内部で使用されたことを示しています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加