如何在Scala中以函数式方式动态生成参数化查询字符串?
Scala函数式方式生成表连接条件字符串
直接用Scala集合的map和mkString就能搞定,完全不用循环:
val colNames = Array("colName1","colName2") val table1 = "A" val table2 = "B" val joinCondition = colNames .map(col => s"$table1.$col = $table2.$col") .mkString(" AND ")
简单解释下:
- map:遍历数组里的每个列名,用字符串插值生成
"表名.列名 = 表名.列名"格式的字符串,相当于把每个列名转换成对应的等式 - mkString:把所有生成的等式字符串用
" AND "拼接起来,直接得到你要的完整条件
这样写完全是函数式风格,没有可变变量,代码简洁还易读。
内容的提问来源于stack exchange,提问作者Fran Arenas
相关产品推荐
相关产品推荐

