[String]オブジェクトの代わりに[Some]オブジェクトを取得するのはなぜですか?
Someオブジェクトは、メソッド呼び出しで文字列パラメータとして機能しません。
スカラの文字列の代わりにSomeを取得する理由
config def
はString
を返しますので、タイプはString
と予想されます。
しかし、 "Hello"と入力するとScala getが正しくなります。戻るには何もないときには空の値を返すことができるように
コード
def config(s: String) = Play.current.configuration.getString(s).toString()
Logger.info(config("recaptcha.publicKey"))
Logger.info("Hello")
出力
[info] application - Some(6LeDMdASAAAAAC4CFIDY-5M7NEZ_WnO0NO9CSdtj)
[info] application - Hello
あなたがRuntimeExceptionsを好きなら最初のものは良いです。.. 。 –
@Luigi +1情報です。しかし、私はあなたが皮肉っていると感じている。私はRuntimeExceptionを好む...ハード、高速でスタックトレースの正しい場所ではなくむしろランダムな場所で後で。私の設定ファイルが入力ミスの場合、私はそれを知りたいと思います。 – Farmor
@Farmorかなり十分ですが、実際に例外をスローしたい場合は、 'get'を使用しないでください:' getOrElse(sys.error( "Illegal config String")) 'を使用して、懸念を分離し、エラーを明確にしますあなたが実際にここで妥当性チェックをしていることをより明確にしてください。 –