Где UserData.retrieve
имеет тип (m: Map[String, String]) => User
и UserData.update
имеет тип (r: spark.sql.Row) => Unit
почему
receipts map UserData.retrieve
работает нормально, но когда я запускаю
events foreach UserData.update
это приводит к следующей ошибке:
missing argument list for method update in object UserData
Unapplied methods are only converted to functions when a function type is expected.
You can make this conversion explicit by writing `update _` or `update(_)` instead of `update`.
Я вижу в документации, что map
ожидает func: (T) ⇒ U
, а foreach
ожидает f: (T) ⇒ Unit
, поэтому мне кажется, что компилятор должен преобразовать мои методы в функции для map
и foreach
, но вместо этого это только для map
. Почему?
n.b. Я знаю, что могу заставить этот foreach
вызов работать, явно преобразовав его,
receipts.foreach.(UserData.update(_))
но здесь я прошу помощи, чтобы понять, почему я должен.