언제 Clojure 코드에 형식 주석을 넣으시겠습니까? 분명히 성능이 중요 할 때. 그러나 (Java Interop을 수행 할 때만) 언제 어디에 살 수있는 규칙이 있습니까? (함수 정의 인수)를 추가 할 위치는 무엇입니까? 나는 "성능입니다 알고 있어요언제 Clojure 코드에 형식 주석을 넣을까요?
답변
최우선 이유. Clojure의에서 힌트를 입력 그래서 내가 성능 중요한로 측정 한 기능의 유형 힌트를 넣어 것입니다. 성능이 저하 될 수 있습니다 반사를 제거합니다.
clojure.org에서 자바 상호 운용성 섹션에서 description가 발언 중 :..
Clojure의 유형의 사용은 코드 보통의 성능이 중요한 분야에서 반사를 피할 수있는 컴파일러를 지원하기 위해 힌트를 지원, 하나는 피해야한다 알려진 성능 병목 현상이 발생할 때까지 형식 힌트 사용.
... 식별자 또는 표현식에 힌트가 추가되면 컴파일러는 컴파일시 해당 메서드에 대한 호출을 해결하려고합니다. 또한 컴파일러는 반환 값의 사용을 추적하고 형식을 유추하는 등의 작업을 수행하므로 완전히 컴파일 타임에 해결 된 일련의 호출을 얻는 데 필요한 힌트는 거의 없습니다. 컴파일러는 항상 정적 유형이 있기 때문에 유형 힌트는 정적 멤버 (또는 그 반환 값!)에 필요하지 않습니다.
반사 경고 플래그를 켜면 반사가 호출되는 위치를 볼 수 있으며 결과적으로 유형 힌트가 도움이 될 수 있습니다. 귀하의 질문에 대해서는
:
EDIT "오직 자바 상호 운용성을 위해?" --아니. 유형 힌트는 순수한 클로저 응용 프로그램에서도 유용합니다. 리플렉션 성능이 저하되는 문제는 JVM에서 실제로 발생하는 문제이며 동적 언어가 일반적으로 처리해야하는 문제입니다. 그들은 함수 매개 변수에 배치 할 수 있습니다
타입 힌트가 clojure.org에서, 배치 할 수있는 위치에 관한,하자 바인딩 이름, VAR 이름 (정의 된 경우) 및 표현식 :
당신은 이미 대답을 받아 들였습니다. 귀하의 질문에 대한 직접적인 대답은 아니지만, Lau는 퍼포먼스상의 이유로 힌트를 쓸 때 매우 교육적인 Functional Fluid Dynamics in Clojure에 정말 멋진 글을 올렸습니다.
+1 멋진 기사입니다. –
404 - 기사가 사라진 것 같습니다. ( – jocull
[wayback machine] (https://web.archive.org/web/20100403083120/http://www.bestinclass.dk/index.php/2010/03/ 기능 - 유체 역학 -에서 - clojure /) 구조! –
- 1. C# 코드에 xml 주석을 자동으로 삽입하는 도구
- 2. Reflector의 코드에 대한 XML 주석을 보는 방법
- 3. 코드에 주석을 달기에 적합한 도구는 무엇입니까?
- 4. JavaScript 코드에 주석을 달 수있는 도구가 있습니까?
- 5. DataContractJsonSerializer에는 형식 정보가 언제 포함됩니까?
- 6. 코드에 둘 이상의 TraceSource가 언제 필요합니까?
- 7. 어디서 CMakeLists.txt를 넣을까요?
- 8. 어디서 & php에 넣을까요?
- 9. GWT - 공유 폴더에 무엇을 넣을까요?
- 10. 왜/* jQuery 함수 주위에 넣을까요?
- 11. 연락처 정보를 별도의 테이블에 넣을까요?
- 12. 왜 마지막에 "const"를 넣을까요?
- 13. clojure 특수 형식 모음을 프로그래밍 방식으로 가져 오는 방법이 있습니까?
- 14. Clojure 프로그램의 특정 소프트웨어 메트릭
- 15. Clojure 소스 코드 라이브러리
- 16. 로그인 Clojure
- 17. CLR의 Clojure
- 18. 반복판에 Clojure
- 19. Clojure 표준?
- 20. Clojure 대지도
- 21. 미리 컴파일 된 헤더에 무엇을 넣을까요? (MSVC)
- 22. clojure unqoute 문제
- 23. 주석 기반 REST 서버에서 Clojure 사용
- 24. Clojure read-line function 문제
- 25. Clojure에서 언제 deftype을 사용해야합니까?
- 26. 주석을 제거하면 한 번에 임의의 주석을 제거합니다.
- 27. 언제 예상하고 언제 스텁을합니까?
- 28. 언제
- 29. 언제
- 30. 언제
이 컨텍스트에서 정적 멤버 란 무엇입니까? – johnbakers