Scala进程记录器
下面是Alvin Alexander编写的for Scala进程记录器,其中讨论了如何从外部系统命令处理stdout和stderr。我了解了示例的大部分内容,现在知道了如何使用它,但我发现很难理解Scala进程记录器,scala,logging,Scala,Logging,下面是Alvin Alexander编写的for Scala进程记录器,其中讨论了如何从外部系统命令处理stdout和stderr。我了解了示例的大部分内容,现在知道了如何使用它,但我发现很难理解append.的目的。有人能帮我理解一下吗?这些文件很模糊 #!/bin/sh exec scala "$0" "$@" !# import sys.process._ val stdout = new StringBuilder val stderr = new StringBuilder val
append.
的目的。有人能帮我理解一下吗?这些文件很模糊
#!/bin/sh
exec scala "$0" "$@"
!#
import sys.process._
val stdout = new StringBuilder
val stderr = new StringBuilder
val status = "ls -al FRED" ! ProcessLogger(stdout append _, stderr append _)
println(status)
println("stdout: " + stdout)
println("stderr: " + stderr)
下面是ScalaDoc如何描述一个
ProcessLogger
构造函数:
def apply(fout: (String) ⇒ Unit, ferr: (String) ⇒ Unit): ProcessLogger
因此它需要两个参数,每个参数都接受一个字符串
输入,而没有输出(即单元
)。参数stdout append
将字符串
输入(即
)附加到StringBuilder
)
换句话说,
stdout append
可以重写为str=>stdout.append(str)
以下是ScalaDoc如何描述ProcessLogger
构造函数之一:
def apply(fout: (String) ⇒ Unit, ferr: (String) ⇒ Unit): ProcessLogger
因此它需要两个参数,每个参数都接受一个字符串
输入,而没有输出(即单元
)。参数stdout append
将字符串
输入(即
)附加到StringBuilder
)
换句话说,stdout-append
可以重写为str=>stdout.append(str)
等于:
{ _ => stdout.append(_) }
等于:
{ _ => stdout.append(_) }
你明白stdout append的意思吗?@pedrofurla是的,我现在明白了,它基本上是把命令的输出附加到stdout上。你明白stdout append的意思吗?@pedrofa是的,我现在明白了,它基本上是将命令的输出附加到
stdout
。感谢您的评论,您答案的最后一行总结了这一切。Scala允许您有时省略点,我只是不理解语法。再次感谢你的解释。谢谢你的评论,你答案的最后一行总结了这一切。Scala允许您有时省略点,我只是不理解语法。再次感谢您的解释。{{{u=>stdout.append(}
不是有效的Scala语法。{{u=>stdout.append(}
不是有效的Scala语法。