KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
The following example is from the book 'Programming in Scala'. Given a class 'Rational' and the following method definition: def add(that: Rational): Rational = new Rational( this.numer * that.denom + that.numer * this.denom, this.denom * that.denom ) I can successfully overload the add method with a convenience version that takes an Int argument, and makes use of the definition above : def add(that: Int): Rational = add(new Rational(that, 1)) No problems so far. Now, if I change the method name to an operator style name: def +(that: Rational): Rational = new Rational( this.numer * that.denom + that.numer * this.denom, this.denom * that.denom ) And overload like so: def +(that: Int): Rational = +(new Rational(that, 1)) I get the following compile error: (fragment of Rational.scala):19: error: value unary_+ is not a member of this.Rational +(new Rational(that, 1)) ^ Why is the compiler looking for a unary version of the + method?
Tags (comma-separated)
Save Edits
Cancel