2017-03-16 11 views
0

私はスカラーにとって非常に新しいです。スカラーのargとしての感嘆符(!)

以下のような非常に基本的なスカラスクリプトを作成しました。

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 Programming "!!!" ハッピー スカラ プログラミング – TechEnthusiast

答えて

4

をスクリプトを実行しています。これは動作します:

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

これは、です!は、Windowsシェルの特殊文字です。この問題はscalaプログラムがプログラム引数としてハッピースカラプログラミングしか受け取っていないため、スカラー自体とは何の関係もなく、Windowsシェルプロンプトで感嘆符が消えていました。

詳細については、これらのスタックオーバーフローの回答をご覧ください。

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

私の要件は新しい行にそれぞれの単語を印刷することでしたので、私は以下を使用しました(特殊文字の周りに二重引用符を追加しました)。助けてくれてありがとうございました。 scala test1.scala Happy Scalaプログラミング "^!^!^!" – TechEnthusiast

関連する問題