__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
'your programing' 카테고리의 다른 글
mysql에서 자동 증가가 생성 할 수있는 가장 큰 ID 번호는 무엇입니까? (0) | 2020.12.30 |
---|---|
캐시 지역성이 어레이 성능에 중요한 이유는 무엇입니까? (0) | 2020.12.30 |
Groovy, "리소스 활용"건설 대안 (0) | 2020.12.30 |
TypeScript에서 순수 추상 클래스 확장 및 구현 (0) | 2020.12.30 |
작업 DSL 플러그인 대 파이프 라인 플러그인 (0) | 2020.12.30 |