5

私は J で大規模なコード ベースを管理しており、いくつかのまれな関数と変数は__(2 つのアンダースコア) で終わります。

通常、__ロケール内の何かを参照するために使用されます。

barObj =: conew 'Bar'
Foo__barObj

しかし、私はこれを持っています:

Foo__

次のように宣言されています。

Foo__=: 3 : 0

それは静的関数の別の構文ですか? すべてのロケールでアクセスできますか?

編集:

私が収集できる限り、それはローカルではありません。このように宣言された変数:

FooVar__ =.

=.ローカルに見えますが、別の関数から参照できます。同様に、「into locale」宣言は常に「locale に対してグローバル」です (Foo__Bar =.そしてFoo__Bar =:同じです)。

4

1 に答える 1

3

2 つのアンダースコアで終わることは、ベース ロケールで名前を参照するための古い手法です。Locale ラボの関連部分の詳細を次に示します。

ブラケット文字の間にロケール名がないロケーティブ_は、名前ベースがあるかのように扱われます。

abc__と同じですabc_base_

以前のバージョンとの互換性のためにそのまま扱います。一般的には を使用する必要が__あります。_base__base_

于 2011-08-02T16:27:47.503 に答える