gpt4 book ai didi

scala - 如何简洁地检查元组是否没有重叠成员

转载 作者:行者123 更新时间:2023-12-04 11:46:55 25 4
gpt4 key购买 nike

我有两个 Tuple2[String, String]我想检查它们是否没有重叠坐标。下面是一个例子:

def checkOverlapping(t1: (String, String), t2: (String, String)) =
t1._1 == t2._1 || t1._1 == t2._2 || t1._2 == t2._1 || t1._2 == t2._2

它有效,但看起来非常难看。如果是 Tuple4[String, String, String, String]手动检查所有碰撞似乎很疯狂。

是否有一种简洁的方法适用于 TupleXString ?

最佳答案

def checkOverlapping(x: Product, y: Product): Boolean = {
val s = x.productIterator.toSet
y.productIterator.exists(s)
}

这适用于任意数量的元组,如果数量不同且类型不是 String但别的东西。实际上,它适用于各种事物,包括 case -类。类型安全基本上不在窗口之外,但是是的 - 它很简洁。如果您只需要特定类型的元组,则替换 Product通过这些元组的类型将是重新获得类型安全性的简单方法。

关于scala - 如何简洁地检查元组是否没有重叠成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55192664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com