2011-09-12 4 views
67

私はScala関数をファイルではなく、クラスで定義しました。Scalaインタプリタでそれらを使用したいと思います。私はscala filename.scalaと言って、単にファイルを実行してインタプリタを終了することができますが、ファイルを実行してからインタプリタを使いたいので、いくつかのテストを行うことができます。誰かがファイルをインタープリタにロードする方法を教えてもらえますか?その中で定義されている関数を使うことができますか?Scalaファイルをインタプリタに読み込んで関数を使用しますか?

+19

'次を使用してファイルをロードするために:pasteを使用することができますロード/パス/に/ file' ScalaのREPLで – Jamil

+1

素晴らしい、それは私が探していたまさにです。なぜそれが見つけにくいのか分かりません。 –

+1

Jamil、答えとして投稿してください。そうすれば、Bea Metitiriは答えとしてマークすることができます。 –

答えて

89

タイプ:load /path/to/file Scala REPL。

あなたは完全なパスを入れ、:help

+0

これは一度に1つの定義を評価するようですが、ファイルに密封された特性や前方参照がある場合は機能しません。 ':paste/path/to/file'はSureshの答えに書かれているように、うまく動作します。 –

4

だけリマインダを入力して、使用可能なコマンドの完全なリストを取得することができます。

:負荷は〜/ fileName.scala

エラーを取り除くために、私は

をしました "そのファイルが存在しません" 私はこのようにすることにより、Linuxでの問題が見つかりました: (:loadより)あなたのより良い友人であるかもしれない/complete/path/fileName.scala機会に

12

:pasteをロードします。 の使用方法の例を次に示します。を貼り付けます。

scala> :paste 
// Entering paste mode (ctrl-D to finish) 

if (true) 
    print("that was true") 
else 
    print("false") 

[Ctrl-D] 

// Exiting paste mode, now interpreting. 

that was true 

一つは、コマンド:paste [path]

scala> :paste ~/Desktop/repl_seeder.scala 
Pasting file ~/Desktop/repl_seeder.scala... 
defined object test1 

scala> test1.main(Str) 
my first scala program 
関連する問題