2013-05-13 4 views
6

바람직하다 구문루비 모듈 선언

class Bus::Driver 
end 

module Bus 
    class Driver 
    end 
end 

그렇지 않은 경우에는, 하 사이 차이가 있습니까?

답변

7

일 사이 차이가 있습니까 [...]?

유일한 차이는 동일한 번째 방치하지 않지만 class Bus::DriverBus 모듈 반드시 이미 정의이다. 어떤 구문

바람직하다?

이 건설적인 질문이 아니라 그 Bus는 모듈 또는 클래스의 경우 처음 내가 처음 눈에 볼 수와 동안 Bus는, 모듈이라고 명시 적으로 언급 때문에 나는 개인적으로 두 번째를 선호합니다. 그 자체

3

이 :

class Bus::Driver 
end 

class Bus 또는 module Bus을 선언하는 당신이 어떤 점에서 오류 그래서 NameError: uninitialized constant Bus

가 발생합니다. 그러나 매번 전체 계층 구조 일 필요는 없습니다.

가 나는 일찍 다음 내 파일의 나머지 부분에서 더 압축 된 양식을 사용하여 네임 스페이스를 설정해야 경향이있다. 내가 선호하는 접근법이 있다는 것을 알지는 못합니다. 당신이 비판을받을만한 것은 없습니다.

1

프로젝트에서 여러 파일에 분산 모듈의 다양한 수업을 할 때 첫 번째 구문을 선호; module은 항상 PATH에 정의되어 있습니다. 예를 들면, 만드는 동안 gem.

둘째는 더 중심이며, 세부 사항에 관한 한 때 수행해야합니다. moduleclass을 포함하지 않습니다, 그것은 methods 너무 네임 스페이스에 대한 constants 등 포함; 유용합니다.