2013-07-11 4 views
2

나를 위해 _root_ 키워드는 어색해 보입니다. 파이썬 스타일이나 해킹처럼 보입니다. 궁금스칼라의 _root_ 네임 스페이스 "키워드"를 변경할 수있는 방법이 있습니까?

_root_.launch.Booster3 

는이

_.launch.Booster3 

처럼 뭔가 언어 건축가에 의해 변경 될 수 있습니다 또는 사용하여 C#을 스타일처럼 될 수 있습니다 글로벌 ::

global::launch.Booster3 

http://msdn.microsoft.com/en-us/library/cc713620.aspx

또는

root.launch.Booster3 

"root"는 키워드로 처리됩니다. _root_ 무엇이든 맞는 아무것도 하지만있는 동안은,는 "무엇이든 맞는"자리의 일이기 때문에

답변

4

_ 나쁜 선택이 될 것입니다.

root은 사람들이 이미 아마도 root 새 키워드를 --adding 사용 매우 파괴 될 가능성이 있기 때문에 나쁜 선택이 될 것입니다. _은 모든 종류의 이름에서 권장하지 않으므로 _이라는 식별자를 선택하면 특별한 의미를 가지게되므로 가장 안전한 방법 중 하나입니다. global:: 키 단어를 예약되지 않은 각각의 독립적 인 식별자이기 때문에

global:: 나쁜 선택이 될 것입니다. 전역 항목을 나머지 패키지 이름이 들어있는 목록 앞에 추가하려는 것 같습니다. 스칼라에서 ::은 목록 연결 (cons)입니다. _root_과 같이 약간 특이한 식별자 인 경우 완벽하게 유효한 식별자를 찾는 것보다 네임 스페이스에서 찾을 때가 훨씬 더 싫은 경우가 있습니다.

나는 _root_이보기 싫지만 (패키지 계층 구조의 이름 충돌이있는 어색한 경우에만 발생해야 함) 유의하시기 바랍니다. 그러나 이와 같은 것에는 좋은 이유가 있으며, 이제는 그것을 바꿔야하는 매우 강력한 이유가있을 것입니다.

+0

하지만 C# 방법은 어떨까요? global :: launch.Booster3? – user4298319

+0

@ serg.f -'global ::'에 관한 단락을 추가했습니다. –

+0

답변 해 주셔서 감사합니다. – user4298319

관련 문제