我需要println(某物)但不打印任何东西而且没有打印新行,我怎么能在Scala中做到这一点? println上面的“东西”应该满足我的要求吗?
答案 0 :(得分:1)
scala> Console.setOut(new java.io.PrintStream(new java.io.OutputStream() { def write(b: Int) {} }))
scala> println("test")
scala>
答案 1 :(得分:1)
我只是关注来自Google scala-user mailing list的 Florian Hars 回复,这似乎更能说明这一点。
让我重申一下您的问题:您需要在解析某些代码源文件时忽略注释。
实际上你有一个主要的定义来测试赋值,它打印出解析源文件的结果,你希望println
语句忽略解析的注释,这样就可以满足老师的条件。
如果是这种情况,那么“正确”的解决方案不是找到一种方法来阻止println
打印,而是修改解析器/词法分析器以避免在遇到注释时生成解析后的令牌
另一种方式只是通过利用特定的“代码配置”来获得正确分配的“技巧”......
答案 2 :(得分:0)
println(...)
将始终打印换行符,无论您传递什么参数。没有办法阻止它打印换行符。
嗯......当然有以下技巧,但这不太实际。
class Magic {
override def toString = throw new RuntimeException
}
// Will not print a newline, but will throw an exception
println(new Magic)
// So you'll need to catch it
try {
println(new Magic)
} catch {
case e: RuntimeException => // Ignore the exception
}
// Hey, we're here and no newline was printed!
答案 3 :(得分:-2)
如果您仍在运行scala解释器,可以通过输入:quit命令退出它。将其放入名为hello.scala的文件中:
println("Hello, world, from a script!")
然后运行:
scala hello.scala
你应该得到另一个问候:
Hello,world,来自脚本!