1.代码
for (p <- builder.getSql) {
try {
val count = SQL(p._2).executeUpdate()
if (count == 0) throw new Exception("")
} catch {
case _: Throwable => errorIds += p._1
}
}
2."<-"表示什么意思?
1.代码
for (p <- builder.getSql) {
try {
val count = SQL(p._2).executeUpdate()
if (count == 0) throw new Exception("")
} catch {
case _: Throwable => errorIds += p._1
}
}
2."<-"表示什么意思?
for (p <- builder.getSql) {
...
}
可以理解成 Python 中的:
for p in builder.getSql
或者 Java 中的:
for(Sometype p: builder.getSql)
每执行一次循环,for 就会从 <- 后面的集合取出一个值赋值给 p,这样 p 就可以在循环体内访问了
scala 保留字,会产生一个生成器。按《programming scala》里说的会对一个collections中的内容进行comprehension;我自己理解就是遍历一个集合中的元素。
p <- builder.getSql这样的被称为生成器(generator)。
这里builder.getSql应该产生一个集合,每执行一次枚举(或者说循环,但是不太好),名为p的val就会被这个集合的元素初始化一次,然后for表达式的体被执行一次。
参考资料《scala编程》 7.3