2014-09-03 91 views
0

在大多數編程語言(如Java或Python)中,我們使用行尾的「\」字符來表示下一行文檔中的代碼是應該繼續的作爲一行代碼執行。但是,在Scala中,如果我們使用「\」字符和用戶,將兩行或更多行代碼複製並粘貼到Scala交互式shell並嘗試執行它,則失敗。scala交互式shell文檔支持複製粘貼

如何在文檔中編寫scala代碼,其中要運行的單個命令不適合一行文本,正確記錄代碼並同時支持複製/粘貼?

回答

0

通常,您可以編寫代碼以避免換行符推斷。

對於必須粘貼到一個REPL行項目:

scala> trait A ; object A 
defined trait A 
defined object A 

scala> trait A { 
    | } ; object A 
defined trait A 
defined object A 

對於必須在粘貼模式正確編譯項目:

trait X { 
    //def f = 1 
    // * 2 
    def f = 
    1 * 2 
    def g = 1 * 
    2 
} 

對於長字符串文字,使用多和stripmargin:

def s = """ 
    |This is a long 
    | string. 
    """.stripMargin.lines.mkString.trim 

對於不喜歡長線的人來說,這是一個普遍問題。

0

那麼,另一方面,簡單的解決方案是使用scala REPL的粘貼模式。

只需輸入:paste即可進入粘貼模式,然後輸入ctrl+D即可將其結束。