Scala进程记录器

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

下面是Alvin Alexander编写的for Scala进程记录器,其中讨论了如何从外部系统命令处理stdout和stderr。我了解了示例的大部分内容,现在知道了如何使用它,但我发现很难理解
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语法。