#scala
#scala
Вопрос:
У меня есть следующий метод:
def foo[B](fn: (B,B) => Boolean): Unit = {
// do something
}
Есть ли способ предоставить equals
параметру значение по умолчанию fn
?
Я уже пробовал
def foo[B](fn: (B,B) => Boolean = ==): Unit = ...
но это терпит неудачу. (Я также пробовал ==[B]
, equals[B]
, B.equals
, и т.д., но ничего не работает)
Ответ №1:
Я обнаружил, что:
def foo[B](fn: (B,B) => Boolean = (a:B, b:B) => a == b)
работает.
Я также заново узнал, что метод и функция — это не одно и то же.
Комментарии:
1.
_ == _
это также должно сработать, если вы хотите сэкономить несколько символов.2. @maasg Я тоже так думал, но компилятор отвергает это.
3. Я пытался. Ты прав. Синтаксис подчеркивания в этом случае недопустим.