누구든지 아래의이 코드에서 잘못된 점을 설명 할 수 있습니까? 내가 생각 내가 여기서 뭐하는 거지 것은재귀 기본 인수 참조
- 전역 변수
a=5
- 하나 개의 인수를 취하는 함수
fun
의 정의의 선언 인 상기 전역 변수 기본값a
때 어떤 파라미터도없이 fun()
을 호출하면 지역 변수 a
은 전역 변수 a
의 사본이되고 기능 코드의 어느 지점에서나 전역 변수보다 우선합니다 a
(unles 나는 구체적으로 get("a", envir=parent.frame)
을 사용합니다.
하지만 틀림에 틀림 없습니다. 그것은 왜 허용되지 않습니까?
> a = 5
> fun = function(a=a) { a + 1 }
> fun(4)
[1] 5
> fun()
Error in fun() :
promise already under evaluation: recursive default argument reference or earlier problems?
잠시 시간을내어 [포맷 도움말] (http://stackoverflow.com/editing-help)을 읽어보십시오. –
결국 과 같은 코드를 만들고 싶었습니다.'fun <- function (a = environment (fun) $ a) {a +1}' – jogo