我现在正在尝试学习Scala,在Haskell中有一些经验.对我来说奇怪的一件事是Scala中的所有函数参数都必须用类型注释 - 这是Haskell不需要的东西.为什么是这样?试着把它作为一个更具体的例子:add函数写成如下:
def add(x:Double, y:Double) = x + y
Run Code Online (Sandbox Code Playgroud)
但是,这只适用于双打(嗯,因为隐式类型转换,因此也可以工作).但是,如果要定义自己的类型来定义自己的+运算符,该怎么办?你会如何编写一个适用于定义+运算符的任何类型的add函数?