your programing

__FILE__이 대문자이고 __dir__이 소문자 인 이유는 무엇입니까?

lovepro 2020. 12. 30. 19:52
반응형

__FILE__이 대문자이고 __dir__이 소문자 인 이유는 무엇입니까?


Ruby 2.0.0-p0에서는 __dir__현재 실행중인 파일의 디렉토리에 쉽게 액세스 할 수 있도록 변수가 도입되었습니다.

대문자 인데 왜 __dir__소문자 __FILE__입니까?


나는 그것이 함수이고 반환하는 __FILE__반면 구문 분석 시간 상수 이기 때문이라고 생각 __dir__합니다.File.dirname(File.realpath(__FILE__))

자세한 내용은 이 토론을 참조하십시오.


TL; DR

언어 구현 선택의 상대적인 장점은 합리적인 스택 오버플로 질문의 범위를 벗어납니다. 그러나 이것은 언어에서 잠재적으로 혼란스러운 사용 사례를 식별하고 두 언어 요소 간의 차이를 명확히하기 위해 좋은 질문입니다.

방법과 유사한 키워드, 방법 및 키워드

__FILE__ 키워드입니다

Ruby 1.9에서는 __FILE__키워드입니다. Object 클래스에 정의 된 메서드처럼 보이지만 Object #__ FILE__ 의 소스 는 다음 같이 말합니다.

# File keywords.rb, line 68
def __FILE__
end

2.0.0-p0의 소스에 대한 빠른 스캔은 keyword.rb 파일을 찾지 못했지만 __FILE__구문 상 키워드로 남아 있다고 가정합니다 . 다른 사람이 현재 정의의 위치를 ​​알려줄 수 있습니다.

__dir__ 방법입니다

Kernel #__ dir__ 은 실제로 메서드입니다. 커널의 정의 된 메소드를 살펴보면 직접 확인할 수 있습니다.

Kernel.methods.grep /__dir__/
# => [:__dir__]

버그 및 토론

사실 __FILE__키워드와 (일종의)하는 방법입니다 둘 다 버그에서 전화 및 일부 버그 관련 논평 . 또한 Ruby-Core Forum 에서 명명 규칙의 다양한 장단점에 대한 논의가있었습니다 .

대답이 약간 불만족 스러울 수 있지만 그것이 현재 상황입니다. 당신이 강하게 느끼는 언어 디자인 문제라면 Ruby 핵심 팀에 참여하는 것이 문제를 해결하는 적절한 방법이 될 것입니다.

참조 URL : https://stackoverflow.com/questions/15190700/why-is-file-uppercase-and-dir-lowercase

반응형