scala类型推断java
方法msortSwapped(abcd)(_>_)app
一般,一旦有须要推断多台方法类型参数的任务时,类型推断器就只参考第一个参数列表中全部参数类型,但不会参考以后其余参数。由于方法msortSwapped是柯里化的方法,带两个参数列表,因此第二个参数(也就是说,那个函数值)将不会用来作决定方法参数的参考。函数
所以这种类型推断方案也隐含了以下库方法设计原则:若是须要把参数设计为若干非函数值及一个函数值的某种多态方法,须要把函数参数放在柯里化参数列表的最后面。这样一来,方法的正确类型就能够经过非函数参数类推断出来,而且这个类型能够转而用来完成函数参数类型检查。从而使得方法的使用者能够避免提供更多类型信息并能编译出更简洁的函数字面量。spa
==与java有何差异scala
scala的==遵循的比较规则:设计
首先检查左侧是否为null,若是不是,调用左操做数据equals方法。因此,精确的比较取决于作操做的equals方法定义。因为自动的null检查,所以不须要手动再检查一次了。对象
java里==既能够比较原始类型也能够比较引用类型。对于原始类型,java的==比较值的相等性,与scala一致。二对于引用类型,java的==比较了引用类型的相等性,也就是说比较的是两个变量是否都指向JVM堆里的同一个对象。scala也提供了这种机制,名字是eq。不过,eq和它的反义词neq,仅仅应用于能够直映射到java的对象。编译