2011-07-26 18 views
5

J'de büyük bir kod tabanını koruyorum ve birkaç nadir işlev ve değişken __ ile bitiyor (iki alt çizgi).J'de "__" son eki ne yapar?

Normalde, __ yerel ayarlarda bir öğeye başvurmak için kullanılır.

Foo__ 

olarak ilan:

barObj =: conew 'Bar' 
Foo__barObj 

Ancak, ben bu var

Foo__=: 3 : 0 

Bu bir statik işlev için başka sözdizimi? Tüm bölgeler için erişilebilir mi?

DÜZENLEME: anladığımıza

, yerel değil. Bir değişken böylece ilan:

FooVar__ =. 

, başka bir işlev tarafından başvurulan edilebilir =. rağmen yerel görünüyor yapım. Aynı şekilde, herhangi bir "yerel ayar" bildirimleri her zaman "yerel ayar için global" dir (Foo__Bar =. ve Foo__Bar =: aynıdır).

cevap

3

Çift alt çizgi ile sonlandırmak, temel yerel addaki bir ada için başvurulan eski bir tekniktir. İşte detaylar the relevant part of the Locale lab gelmektedir: bu isim tabanı varmış gibi

paranteze _ karakter arasında hiçbir yerel isimde bir konum belirten tedavi edilir.

abc__ Eğer _base_ kullanmalıdır genelde abc_base_

_base_ olarak __ önceki sürümleri ile uyumluluk içindir Tedavisi

ve aynıdır.

+0

Teşekkürler kaleidik! Ayrıca, yanıtlamanız için kolay olması gereken başka bir sorum var: http://stackoverflow.com/questions/6905439/chain-verbs-in-j – MPelletier