我在循环中写了一个单词“ hi”。
implicit class Rep(n: Int) {
def times[A](f: => A) { 1 to n foreach(_ => f) }
}
// use it with
130.times { println("hi") }
如何保存输出?
答案 0 :(得分:0)
您的代码中有一些错误,这是一个正确的错误:
implicit class Rep(n: Int) {
def times[A](f: => A): Seq[A] = { 1 to n map(_ => f) }
}
// use it with
val myHis = 130.times { "hi" } // returns Vector(hi, hi, hi, hi, hi, ...)
=
,否则函数的返回类型为Unit
-在这种情况下(: Seq[A]
)总是显式添加返回类型,编译器会为您提供帮助。map
代替foreach
,因为foreach
再次返回Unit
println("hi")
再次返回Unit
。返回了最后一条语句,因此它必须是您想要的值。要编写以下文件:
new java.io.PrintWriter("filename") { write(myHis.mkString(", ")); close }
请注意,这个简单的示例无法正确处理异常-但我认为您正在寻找myHis.mkString(", ")
。