2011-07-26 7 views
5

나는 J에서 큰 코드베이스를 유지하고 있으며 드문 기능과 변수는 __ (두 개의 밑줄)로 끝납니다.J에서 접미사 "__"는 무엇을합니까?

일반적으로 __은 로캘의 내용을 참조하는 데 사용됩니다.

Foo__ 

과 같이 선언 :

barObj =: conew 'Bar' 
Foo__barObj 

그러나, 나는이 가지고

Foo__=: 3 : 0 

은 그게 정적 기능에 대한 또 다른 구문? 모든 로케일에서 액세스 할 수 있습니까?

편집 : 나는 무엇을 수집 할 수 있습니다에서

, 그것은 지역이 아니다. 변수는 이렇게 선언 :

FooVar__ =. 

는 다른 함수에서 참조 할 수있는 =.에도 불구하고이 지역 보인다 만들기. 같은 "로케일"선언은 항상 "로케일에 대해 전역"입니다 (Foo__Bar =.Foo__Bar =:은 동일합니다).

답변

3

밑줄로 끝내는 것은 기본 로케일에서 이름을 참조하기위한 오래된 기술입니다. 여기에 세부 사항은 the relevant part of the Locale lab에서 있습니다 : 그것은 이름 기반을 가진 것처럼

브라케팅 _ 문자 사이에 로케일 이름의 위치 격은 이 처리됩니다.

abc___base_를 사용해야합니다 일반적으로 abc_base_

_base___ 이전 버전과의 호환성을위한 치료

및 과 동일합니다.

+0

감사합니다 kaleidic! 나는 또한 당신이 대답하기 쉬운 다른 질문을 가지고있다 : http://stackoverflow.com/questions/6905439/chain-verbs-in-j – MPelletier