Scala 不允许这样说:
def m(f:(numer:Double,denom:Double)=>tan:Double) = {...}
就像用类型注释变量意味着变量至少有一些文档一样,允许函数类型定义中的变量提供一些文档。由于它是可选的,程序员将决定何时执行它。但以上内容肯定比:
def m(f:(Double,Double)=>Double) = {...}
这种增加的灵 active 会破坏语言语法吗?
最佳答案
解决方法可以在使用类型别名中找到。
type Numer = Double
type Denom = Double
type Tan = Double
def m(f:(Numer,Denom)=>Tan) = {...}
以您的方式使用语法会带来问题和歧义——例如编译器会检查目标函数是否具有完全相同的变量名称? (想一想会绊倒您提议的功能的用户)
关于scala - 为什么 Scala 不允许在函数类型定义中使用参数名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20403581/