如何将重复循环的输出保存在实木复合地板文件中?

时间:2019-10-15 23:35:06

标签: scala loops

我在循环中写了一个单词“ hi”。

implicit class Rep(n: Int) {
    def times[A](f: => A) { 1 to n foreach(_ => f) } 
}

// use it with
130.times { println("hi") }

如何保存输出?

1 个答案:

答案 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, ...)
  1. 添加=,否则函数的返回类型为Unit-在这种情况下(: Seq[A])总是显式添加返回类型,编译器会为您提供帮助。
  2. 使用map代替foreach,因为foreach再次返回Unit
  3. println("hi")再次返回Unit。返回了最后一条语句,因此它必须是您想要的值。

要编写以下文件:

new java.io.PrintWriter("filename") { write(myHis.mkString(", ")); close }

请注意,这个简单的示例无法正确处理异常-但我认为您正在寻找myHis.mkString(", ")