2017-05-08 5 views
0

スカラでは地図があります。地図が値を保持しているかどうかが不明な場合に地図から値を取得するスカラ

マップから、列車のようなオブジェクトを求めています。次に、私の列車で「getNumberOfCarriages」メソッドを呼び出したいと思います。

マップにキー値 "Thomas"のエントリがあるかどうかわからない場合、スカラではキャリッジの数を安全に照会するか、デフォルト値を返すのですか(たとえば、0?)

つまり私はgetOrElse方法を見てきましたが、それは問題に適用された場合、私は不確実だ?

myMap.get("Thomas").getNumberOfCarriages() 

呼ぶのですか

+2

'myMap.get(" Thomas ")。map(getNumberOfCarriages')は' Option [Int] 'を返します。あなたとあなたの問題をどのように解釈するかはあなた次第です。 'Option'を使い続けるか、デフォルトにフォールバックして値を取得します。 – Zernike

答えて

3

liftそれをOptionに、次にfoldをキャリッジの数にするか、またはNoneの場合はデフォルト値にすることができます。

myMap.lift("Thomas").fold(0)(_.getNumberOfCarriages()) 
+0

ありがとう、これは私が探していたものです。私はそれが私にできるとき受け入れるよ – bharal

関連する問題