Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过命令行在scala中传递输入_Scala - Fatal编程技术网

如何通过命令行在scala中传递输入

如何通过命令行在scala中传递输入,scala,Scala,我正在试图运行这个程序后,通过输入我有按 ctrl+c,但是 它给出以下消息E:\Scala>Scala HelloWord.Scala输入一些 输入数字并按ctrl-c 1 2 3终止批处理作业(Y/N)?试试这段代码。它应该按预期工作 import scala.io._ object Sum { def main(args :Array[String]):Unit = { println("Enter some numbers and

我正在试图运行这个程序后,通过输入我有按 ctrl+c,但是

它给出以下消息E:\Scala>Scala HelloWord.Scala输入一些
输入数字并按ctrl-c 1 2 3终止批处理作业(Y/N)?

试试这段代码。它应该按预期工作

  import scala.io._    

  object Sum {    
     def main(args :Array[String]):Unit = {    

      println("Enter some numbers and press ctrl-c")

     val input = Source.fromInputStream(System.in)

     val lines = input.getLines.toList

     println("Sum "+sum(lines))

   }

   def toInt(in:String):Option[Int] =

      try{

        Some(Integer.parseInt(in.trim))

      }

      catch    {
       case e: NumberFormatException => None    
   } 

   def sum(in :Seq[String]) = {

     val ints = in.flatMap(s=>toInt(s))

      ints.foldLeft(0) ((a,b) => a +b)

     } }

另外,结束输入流的正确快捷方式是Ctrl+D

尝试这段代码。它应该按预期工作

  import scala.io._    

  object Sum {    
     def main(args :Array[String]):Unit = {    

      println("Enter some numbers and press ctrl-c")

     val input = Source.fromInputStream(System.in)

     val lines = input.getLines.toList

     println("Sum "+sum(lines))

   }

   def toInt(in:String):Option[Int] =

      try{

        Some(Integer.parseInt(in.trim))

      }

      catch    {
       case e: NumberFormatException => None    
   } 

   def sum(in :Seq[String]) = {

     val ints = in.flatMap(s=>toInt(s))

      ints.foldLeft(0) ((a,b) => a +b)

     } }

另外,结束输入流的正确快捷方式是Ctrl+D

附加观察,注意使对象可执行,因此不必声明
main(…)
函数,例如

object Sum {
    def main(args: Array[String]) {
        val lines = io.Source.stdin.getLines
        val numbers = lines.map(_.toInt)
        println(s"Sum: ${numbers.sum}")
    }
}
使用
Try
,从
String
Int
的非成功转换将变为
None
,并变平


还要注意的是,对象和类都是大写的,因此我们不必按照惯例编写
对象和
,而是编写
对象和

附加观察值,注意使对象可执行,因此不必声明
主(…)
函数,例如

object Sum {
    def main(args: Array[String]) {
        val lines = io.Source.stdin.getLines
        val numbers = lines.map(_.toInt)
        println(s"Sum: ${numbers.sum}")
    }
}
使用
Try
,从
String
Int
的非成功转换将变为
None
,并变平


还要注意的是,对象和类都是大写的,因此根据惯例,我们编写
对象和
,而不是
对象和

,您也可以使用外部API。我非常喜欢

您也可以使用外部API。我真的很喜欢

谢谢它的工作。我在Windows7中使用,所以对于输入流,Ctrl+C可以工作,并接受您的答案。谢谢你的帮助谢谢它的工作。我在Windows7中使用,所以对于输入流,Ctrl+C可以工作,并接受您的答案。谢谢你的帮助help@elm-我运行时,您发送的代码未打印anything@elm-当我运行您发送的代码时,它没有打印任何内容