2015-10-01 17 views
15

Khi tôi đọc mã nguồn phát tia lửa here, tôi thấy mã như $(a_variable). Có nghĩa là gì?Dấu đô la làm gì trong scala

để sao chép mã ở đây:

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

Điều này làm tôi ngạc nhiên. Việc sử dụng các dấu hiệu đồng đô la trong số nhận dạng được khuyến khích, mặc dù không thực sự bất hợp pháp, trong cả Java và Scala, bởi vì trình biên dịch sử dụng '$' nội bộ trong mã được tạo ra. –

Trả lời

15

Đó không phải là đặc biệt cú pháp Scala, đó là một tên phương pháp. Trong Scala $ là số nhận dạng hợp pháp. Phương pháp được kế thừa từ đặc tính org.apache.spark.ml.param.Param.

Xem source.

+6

Nguồn không rõ ràng khi nói "Nhận giá trị của một tham số trong bản đồ param được nhúng hoặc giá trị mặc định của nó". Bạn có thể xây dựng được không? –

Các vấn đề liên quan