File
라이브러리를 작성한 사람들이 파일 대신 기호로 열리는 파일의 모드를 결정하는 인수를 만들기로 결정한 이유가 궁금합니다. 지금 얼마나문자열 대신 File.new 기호에 대한 인수가없는 이유는 무엇입니까?
는 예를 들어,이는 다음과 같습니다
f = File.new('file', 'rw')
하지만이 할 수있는 더 좋은 디자인되지 않을 것
f = File.new('file', :rw)
또는 예를 들어, 심지어
f = File.new(:file, :rw)
? 이것은 논쟁이 확실히 바뀔 필요가 없으므로 이것을 사용하기에 완벽한 장소 인 것 같습니다.
나는 왜 이런 식으로 나왔는지 알고 싶다.
업데이트 : 방금 a related question about symbols vs. strings을 읽었으며, 기호가 문자열로 잘 알려져 있지 않으며 모든 사람이 문자열을 사용하여 해시 테이블을 색인하는 데 익숙하다고 생각합니다. 그러나 루비의 표준 라이브러리 디자이너가 심볼의 주제에 대해 무지하게 주장하는 것은 타당하지 않을 것이라고 생각합니다. 그래서 그것이 그렇게 생각하지 않습니다.
이것은 libc에서'fopen'으로 돌아가는 역사적인 유물 일뿐입니다. –
'File.new' 모드 ('r','w','+','a','b','t')의 각 순열에 대해 고유 한 기호가 정의되어 있다고 제안 하시겠습니까? – Gabe
큰 질문입니다. 'File :: RDWR'과'File :: CREAT'과 같은 상수가 있습니다 만, 그것에 관한 문서는 찾을 수 없습니다. 'File' [documentation] (http://www.ruby-doc.org/core/classes/File.html)은이 상수를 사용하지만 설명하지는 않습니다. – rdvdijk