更新于2018/01/15
示例:您想查看当前工作目录中的文件:
scala> :sh ls -l
res3: scala.tools.nsc.interpreter.ProcessResult = `ls -l` (13 lines, exit 0)
但你不能这样做:
scala> res3.foreach {println}
<console>:40: error: value foreach is not a member of scala.tools.nsc.interpreter.ProcessResult
res3.foreach {println}
^
首先,您必须将这些行分配给支持迭代的另一种类型:
scala> res3.lines
res7: List[String] = List(total 960, -rw-r--r--@ 1 dave staff 11325 Jan 3 15:01 LICENSE, -rw-r--r--@ 1 dave staff 8859 Jan 3 15:01 README.rst, drwxr-xr-x@ 3 dave staff 96 Jan 3 15:03 assembly, drwxr-xr-x@ 20 dave staff 640 Jan 3 15:01 bin, drwxr-xr-x@ 13 dave staff 416 Jan 3 15:01 doc, drwxr-xr-x@ 7 dave staff 224 Jan 3 15:01 docker, drwxr-xr-x@ 6 dave staff 192 Jan 3 15:03 examples, -rw-r--r--@ 1 dave staff 826 Jan 3 15:01 gradle.properties, -rw-r--r--@ 1 dave staff 128 Jan 3 15:04 h2o_drivers.txt, drwxr-xr-x 3 dave staff 96 Jan 16 00:54 h2ologs, drwxr-xr-x@ 5 dave staff 160 Jan 3 15:04 py, -rw-r--r--@ 1 dave staff 455890 Sep 19 04:18 rsparkling.tar.gz)
然后迭代,就这样!
scala> res7.foreach {println}
total 960
-rw-r--r--@ 1 dave staff 11325 Jan 3 15:01 LICENSE
-rw-r--r--@ 1 dave staff 8859 Jan 3 15:01 README.rst
drwxr-xr-x@ 3 dave staff 96 Jan 3 15:03 assembly
drwxr-xr-x@ 20 dave staff 640 Jan 3 15:01 bin
drwxr-xr-x@ 13 dave staff 416 Jan 3 15:01 doc
drwxr-xr-x@ 7 dave staff 224 Jan 3 15:01 docker
drwxr-xr-x@ 6 dave staff 192 Jan 3 15:03 examples
-rw-r--r--@ 1 dave staff 826 Jan 3 15:01 gradle.properties
-rw-r--r--@ 1 dave staff 128 Jan 3 15:04 h2o_drivers.txt
drwxr-xr-x 3 dave staff 96 Jan 16 00:54 h2ologs
drwxr-xr-x@ 5 dave staff 160 Jan 3 15:04 py
-rw-r--r--@ 1 dave staff 455890 Sep 19 04:18 rsparkling.tar.gz
scala> :sh cmd /C dir res0: scala.tools.nsc.interpreter.ProcessResult = `cmd /C dir` (27 lines, exit 0) scala> res0 foreach println:13: error: value foreach is not a member of scala.tools.nsc.interpreter.ProcessResult
res0 foreach println
^
- Hossein