所以我有这样的udf:
def myfunc = {udf((A:mutable.WrappedArray[mutable.WrappedArray[String]],B:mutable.WrappedArray[mutable.WrappedArray[String]])
=> breakable{for(i <- 0 to 2)yield( if (A(i)==B(i)) "U" //want to break here
else "N" //break here)})}
它会给我多个U或N,我希望它只返回一个字母作为最终结果。我如何打破for循环?
答案 0 :(得分:3)
exists
方法测试集合中至少一个元素的某个谓词是否为真:
if ((0 to 2).exists(i => A(i) == B(i))) "U" else "N"
答案 1 :(得分:1)
您可以执行以下操作
import scala.util.control.Breaks._
def myfunc = udf((A: mutable.WrappedArray[mutable.WrappedArray[String]], B: mutable.WrappedArray[mutable.WrappedArray[String]])
=> breakable{
for(i <- 0 to 2) yield
if (A(i)==B(i)) {
"U"
break
}
else {
"N"
break
}
})