Sassyブログ

好きなことで暮らしを豊かにするブログ

Scala入門 関数オブジェクトの変換のやり方

目次

1.関数オブジェクトの変換

まず最初にdefで定義した関数を用意します。

scala> def func(x: String, y: String) = x + y
func: (x: String, y: String)String

それをfunc1変数に代入する際に「_」を後ろにつけてあげると関数オブジェクトへ変換できます。

scala> val func1 = func _
func1: (String, String) => String = $$Lambda$3107/949970705@37f6f9df

「_」付けずに代入するとエラーになるのでご注意を

scala> val func1 = func
<console>:12: error: missing argument list for method func
Unapplied methods are only converted to functions when a function type is expected.
You can make this conversion explicit by writing `func _` or `func(_,_)` instead of `func`.
  val func1 = func

以上