Например, у меня есть такой код:Как инициализировать параметр типа функции в классе Scala?
class Foo(name: String = "", callback: String => String) {
def doCallback(arg: String): String = {
callback(arg)
}
}
Вопросы:
1. В Foo
конструктор класса, как дать callback
параметра значение по умолчанию? Можно ли установить его на null
? Или есть лучшая альтернатива?
class Foo(name: String = "", callback: String => String = null) {
...
}
2. Если ответ вопрос нет. 1 не является null
, как сделать проверку callback
, прежде чем называть его внутри метода doCallback
? Например, предположим, что null
является приемлемым, я мог бы сделать это следующим образом:
class Foo(name: String = "", callback: String => String = null) {
def doCallback(arg: String): String = {
if (callback != null) callback(arg) else "" // the checking of not null
}
}
определить замыкание, которое возвращает нуль задница параметр по умолчанию – markusw
@markusw: спасибо, теперь я понимаю :) – null
Всякий раз, когда это возможно не используйте 'null', используйте' Option' вместо – Andrey