1
我妈想下面的Scala 2.9隐式转换方法转换为2.10隐类:转换Scala的隐式转换方法为2.10隐含的类
import java.sql.ResultSet
/**
* Implicitly convert a ResultSet to a Stream[ResultSet]. The Stream can then be
* traversed using the usual map, filter, etc.
*
* @param row the Result to convert
* @return a Stream wrapped around the ResultSet
*/
implicit def stream(row: ResultSet): Stream[ResultSet] = {
if (row.next) Stream.cons(row, stream(row))
else {
row.close()
Stream.empty
}
}
我第一次尝试不编译:
implicit class ResultSetStream(row: ResultSet) {
def stream: Stream[ResultSet] = {
if (row.next) Stream.cons(row, stream(row))
else {
row.close()
Stream.empty
}
}
}
我在stream(row)
上收到语法错误,因为stream
没有带参数。
这样做的正确方法是什么?
感谢。一般来说,我仍然试图将自己的头围绕在Streams上。同时学习Haskell和懒惰有时会让人困惑。 – Ralph