2016-04-08 4 views

答えて

1

!を後置演算子として呼び出しているため、ここではScalaコンパイラが混乱しています。どのバージョンを使用するのか、暗黙のセミコロンをどこに置くのかはわかりません。

def test() = { 
    val h = "ls"!; 
    if (h != 0) 
     println("error") 
} 

のか、方法としてそれを呼び出す:あなたはこのようにセミコロンを追加することができますいずれか

def test() = { 
    val h = "ls".! 
    if (h != 0) 
     println("error") 
} 

か、新しい行を追加します。後置演算子を使用する

def test() = { 
    val h = "ls"! 

    if (h != 0) 
     println("error") 
} 
+0

または空白行を追加してください。それは構文であり、過負荷とは無関係であることに注意してください。 –

+0

@ som-snytt確かに。私は新しいラインアプローチを提案したくはありませんでしたが、完全性のために追加しました。 –

0

ベストプラクティスをドット.オペレータを使用することです。 val h = "ls".!

これは、Scalaではセミコロンがオプションであり、コンパイラはそれを中置記法として扱う可能性があるため、コードのあいまいさを軽減します。

Scalaの から DOC:

このスタイルは安全ではない、と使用すべきではありません。セミコロンは のオプションであるため、コンパイラは の場合はインフィニクスメソッドとして扱いますが、潜在的に次の行から用語を取ります。

詳細については、Suffix Notationを参照してください。この投稿は役に立ちますScala's "postfix ops"

関連する問題