정의되지 않은 (또는 위증 한) 경우에만 변수에 할당하는 간단한 Julia 구문이 있습니까? 루비의 x ||= NEW_VALUE
과 같은 의미입니다. x || x=NEW_VALUE
을 시도했지만 오류가 발생합니다. 쉬운 구문을 제외하고, 변수가 정의되어 있는지 확인하기 위해 어떤 함수를 사용할 수 있습니까?Julia에 아직 정의되지 않은 경우에만 할당
13
A
답변
24
isdefined
기능을 사용할 수 있습니다 : isdefined(:x) || (x = NEW_VALUE)
.
2
불편을 드리기 위해 매크로를 준비했습니다. REPL에이어서
macro ifund(exp)
local e = :($exp)
isdefined(e.args[1]) ? :($(e.args[1])) : :($(esc(exp)))
end
:
julia> z
ERROR: UndefVarError: z not defined
julia> @ifund z=1
1
julia> z
1
julia> z=10
10
julia> @ifund z=2
10
julia> z
10
보간의 예 :
julia> w
ERROR: UndefVarError: w not defined
julia> w = "$(@ifund w="start:") end"
"start: end"
julia> w
"start: end"
그러나 범위를 기억 (y
이 범위에 대한 루프)
julia> y
ERROR: UndefVarError: y not defined
julia> for i=1:10 y = "$(@ifund y="") $i" end
julia> y
ERROR: UndefVarError: y not defined
그것이 작동하는지 나에게 안다. 나는 매크로가있는 나의 첫번째 운동이기 때문에 나는 호기심이 많다.
관련 문제
- 1. 아직 게시되지 않은 경우에만 게시하십시오.
- 2. 원자 집합이 아직 설정되지 않은 경우에만
- 3. 아직 실행하지 않은 경우에만 WCF 시작
- 4. 마시맬로 권한은 아직 부여되지 않은 경우에만 요청해야합니다.
- 5. asihttprequest가 아직 저장되지 않은 경우에만 다운로드하십시오.
- 6. 할당 아직 배열 인덱스
- 7. 아직 정의되지 않은 메소드를 만들기위한 Eclipse 단축키.
- 8. 타입 생성자는 아직 완전히 정의되지 않은
- 9. Django는 아직 정의되지 않은 모델에 관계를 만듭니다.
- 10. 예기치 않은 정의되지 않은 절차
- 11. 아직 정의되지 않은 클래스의 인스턴스에서 메소드를 호출하려면 어떻게해야합니까?
- 12. 쉼표 다음에 공백을 추가하십시오 (아직 입력하지 않은 경우에만)?
- 13. 브로드 캐스트에 대한 registerReceiver가 아직 등록되지 않은 경우에만?
- 14. 파이썬 모듈을 아직 가져 오지 않은 경우에만 가져옵니다.
- 15. Rails 이전 데이터베이스 마이그레이션 (아직 삭제되지 않은 경우에만)
- 16. jQuery/javascript - 이벤트 처리기가 아직 할당되지 않은 경우에만 연결합니다.
- 17. 마우스가 이벤트를 입력하지만 마우스가 아직 입력되어 있지 않은 경우에만
- 18. npm 패키지를 아직 설치하지 않은 경우에만 전역으로 설치하는 방법은 무엇입니까?
- 19. 필요한 필드를 채우지 않은 경우에만 정의되지 않은 변수
- 20. 할당 된 속성이 정의되지 않은 것으로 나타납니다.
- 21. 아마도 정의되지 않은 필드의 변수 할당
- 22. PHP - 내 변수가 아직 정의되지 않은 이유는 무엇입니까?
- 23. julia에 winston 설치
- 24. Julia에 포트란 코드 통합
- 25. Python : 아직 정의되지 않은 변수가 함수에서 호출되었지만 작동합니까?
- 26. 다른 함수 안에서 아직 정의되지 않은 함수에 대해 jslint에 알려야합니까?
- 27. CodeIgniter가 정의되지 않은 변수에 대해 불평하지만 아직 print_r 결과를 표시합니다.
- 28. 기능 내가 노드 모듈에 아직 정의되지 않은 참조하기
- 29. 아직 저장되지 않은 개체
- 30. Jquery 슬라이드가 아직 보이지 않는 경우에만 내립니다.