2017-12-31 55 views
2

私は医者の練習をシミュレートする小さなプログラムをスカラーで書いています。要件の1つは、ユーザーが医師との相談を設定できることです。成功した場合は相談オブジェクトを提供するソリューションを実装しており、アクションが成功したというメッセージも表示されます。println in scala Intellijを使って奇妙な振る舞いを表示

これは少し "バグ"(軽微だが厄介な不具合)が表示されます。私は新しい変数そうようにするために私のScalaのワークシートを伝えるとき:

var consultation: Consultation = patient.makeConsultation(x, y, z) 

まあこれは完璧に動作しますが、それは印刷してくださいメッセージが出力ウィンドウの上部ではなく、ワークシートのポイントで印刷されていました変数が実際に作成されます。誰もがこれに対する解決策を知っていますか?

ありがとうございます。

答えて

1

これはバグではなく予期される動作です。 makeConsultationファンクションのprintlnは、の副作用で、Consultationの作成とは関係ありません。

makeConsultationが失敗する可能性があることを表すには、Scalaのタイプシステム(OptionまたはTry)を使用できます。

+0

ありがとうございます!私はこれらを見るでしょう。 – Willem

+0

@Willem大歓迎です。たぶんそれらのタイプで実装して、問題が発生した場合に新しい質問をしてみてください。それがあなたの質問に答えるならば、答えをアップホート/受け入れることができます。 – Sebastian