2015-10-01 19 views
15

スパークソースコードhereを読むと、$(a_variable)のようなコードが見えました。 それはどういう意味ですか?ドル記号はスカラーで何をする

私はここにコードをコピーします。

final val blockSize: IntParam = new IntParam(this, "blockSize", 
    "Block size for stacking input data in matrices. Data is stacked within partitions." + 
     " If block size is more than remaining data in a partition then " + 
     "it is adjusted to the size of this data. Recommended size is between 10 and 1000", 
    ParamValidators.gt(0)) 

    /** @group getParam */ 
    final def getBlockSize: Int = $(blockSize) 
+1

これは私に見て驚きです。コンパイラは生成されたコードで '$ 'を内部的に使用するため、識別子にドル記号を使用することは、実際には違法ではありませんが、JavaとScalaの両方では推奨されません。 –

答えて

15

特殊なScalaの構文ではありません、それはメソッド名です。 Scalaで$は法的な識別子です。メソッドはorg.apache.spark.ml.param.Param形質から継承されます。

sourceを参照してください。

+6

「埋め込まれたパラメータマップのパラメータの値またはそのデフォルト値を取得する」と言ったときのソースはあまり明確ではありません。どうしたらいいですか? –

関連する問題