scala – 对组件的等同功能
发布时间:2020-12-16 08:58:01 所属栏目:安全 来源:网络整理
导读:Scala中是否有一个函数比较一对中的两个组件是否相等?就像是: def pairEquals[A,B](pair: Pair[A,B]): Boolean = (pair._1 == pair._2) 在Haskell中,那将是: uncurry (==) 解决方法 标准库中没有类似的东西.但您可以轻松扩展Pairs以获得您的行为 implicit
Scala中是否有一个函数比较一对中的两个组件是否相等?就像是:
def pairEquals[A,B](pair: Pair[A,B]): Boolean = (pair._1 == pair._2) 在Haskell中,那将是: uncurry (==) 解决方法
标准库中没有类似的东西.但您可以轻松扩展Pairs以获得您的行为
implicit class PimpedTuple[A,B](tp: Tuple2[A,B]) { def pairEquals = tp._1 == tp._2 } val x = (2,3) x.pairEquals // false val y = (1,1) y.pairEquals // true 编辑: 另一种方法是:x == x.swap EDIT2: 这是第三种使用equals函数的方法,并使用类似于haskell中的uncurry的构造. // This is necessary as there is no globally available function to compare values def ===(a:Any,b: Any) = a == b val x = (1,1) (===_).tupled(x) // true (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |