scala 操作符

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."<-"表示什么意思?

阅读 3.5k
4 个回答

p <- builder.getSql这样的被称为生成器(generator)。
这里builder.getSql应该产生一个集合,每执行一次枚举(或者说循环,但是不太好),名为p的val就会被这个集合的元素初始化一次,然后for表达式的体被执行一次。
参考资料《scala编程》 7.3

你可以理解为迭代操作

for (p <- builder.getSql) {
    ...
}

可以理解成 Python 中的:

for p in builder.getSql

或者 Java 中的:

for(Sometype p: builder.getSql)

每执行一次循环,for 就会从 <- 后面的集合取出一个值赋值给 p,这样 p 就可以在循环体内访问了

scala 保留字,会产生一个生成器。按《programming scala》里说的会对一个collections中的内容进行comprehension;我自己理解就是遍历一个集合中的元素。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进