Get it, thank you! On Mon, Jul 24, 2017 at 11:50 AM, Reynold Xin <r...@databricks.com> wrote:
> This is a standard practice used for chaining, to support > > a.setStepSize(..) > .set setRegParam(...) > > > On Sun, Jul 23, 2017 at 8:47 PM, tao zhan <zhanta...@gmail.com> wrote: > >> Thank you for replying. >> But I do not get it completely, why does the "this.type“” necessary? >> why could not it be like: >> >> def setStepSize(step: Double): Unit = { >> require(step > 0, >> s"Initial step size must be positive but got ${step}") >> this.stepSize = step >> } >> >> On Mon, Jul 24, 2017 at 11:29 AM, M. Muvaffak ONUŞ < >> onus.muvaf...@gmail.com> wrote: >> >>> Doesn't it mean the return type will be type of "this" class. So, it >>> doesn't have to be this instance of the class but it has to be type of this >>> instance of the class. When you have a stack of inheritance and call that >>> function, it will return the same type with the level that you called it. >>> >>> On Sun, Jul 23, 2017 at 8:20 PM Reynold Xin <r...@databricks.com> wrote: >>> >>>> It means the same object ("this") is returned. >>>> >>>> On Sun, Jul 23, 2017 at 8:16 PM, tao zhan <zhanta...@gmail.com> wrote: >>>> >>>>> Hello, >>>>> >>>>> I am new to scala and spark. >>>>> What does the "this.type" in set function for? >>>>> >>>>> >>>>> >>>>> https://github.com/apache/spark/blob/481f0792944d9a77f0fe8b5 >>>>> e2596da1d600b9d0a/mllib/src/main/scala/org/apache/spark/mlli >>>>> b/optimization/GradientDescent.scala#L48 >>>>> >>>>> Thanks! >>>>> >>>>> Zhan >>>>> >>>> >>>> >> >