我正在用Scala参数化一个查询。
我有一个列名为colNames
的字符串数组。
我想创建一个字符串,其中字符串的每个名称的输出是A.colName = B.colName
,然后将数组中的所有项目连接在一起,并加上"one_answers";每项之间的字符串。
输入
示例val colNames = Array("colName1","colName2")
val table1 = "A"
val table2 = "B"
期望输出的示例
"A.colName1 = B.colName1 AND A.colName2 = B.colName2"
在非FP语言中我会使用for循环,但我不知道如何在Scala中以函数式的方式做到这一点。
您可以在Array上使用map
和mkString
方法:
scala> colNames map { colName => s"${table1}.${colName} = ${table2}.${colName}" } mkString " AND "
val res0: String = A.colName1 = B.colName1 AND A.colName2 = B.colName2