2017-03-16 158 views
0

我對scala很新。感嘆號(!)在scala中爲arg

寫了一個非常基本的scala腳本,如下所示。

args.foreach(a=>println(a)) 

使用我預期是

Happy 
Scala 
Programming 
!!! 

以下

scala test1.scala Happy Scala Programming !!! 

輸出執行。在命令提示上述但我得到以下代替

Happy 
Scala 
Programming 

作爲我們obs去「!!!」 (感嘆號字符丟失)。

需要了解爲什麼感嘆號字符不會被打印以及如何讓這些字符被打印。

我執行在Windows 7命令提示符

+3

這可能有些事情要和你正在使用消耗這些字符和執行命令前做與他們的東西,傳遞參數給你的程序的外殼。您可能想提及您的運行環境,特別是您正在使用的命令外殼程序。 – Aaron

+0

如果將'!!!'換成雙引號,會發生什麼? –

+0

c:\ scala \ samples> scala test1.scala Happy Scala編程「!!!」 Happy Scala 編程 – TechEnthusiast

回答

4

腳本你必須使用^每個感嘆號標誌之前,也需要把整個論證的雙引號。所以這將工作:

scala test1.scala "Happy Scala Programming ^!^!^!" 

這是因爲是windows外殼的特殊字符。所以這個問題與scala本身無關,因爲scala程序只接收Happy Scala編程作爲程序參數,驚歎號被windows shell提示消耗掉了。

請看看這些堆棧溢出的答案,以獲得更深入的解釋。

  1. https://stackoverflow.com/a/28892829/4046067
  2. https://stackoverflow.com/a/15322106/4046067
+1

由於我的要求是在一個新行中打印每個單詞,因此我使用了以下內容(僅在特殊字符周圍添加了雙引號)。非常感謝您的幫助。 scala test1.scala Happy Scala編程「^!^!^!」 – TechEnthusiast