例如,我有這樣的代碼:如何在Scala類中初始化函數類型參數?
class Foo(name: String = "", callback: String => String) {
def doCallback(arg: String): String = {
callback(arg)
}
}
問題:
在Foo
類的構造函數,如何給callback
參數的默認值?可以將它設置爲null
嗎?還是有更好的選擇?
class Foo(name: String = "", callback: String => String = null) {
...
}
2.如果問題的回答沒有。 1不是null
,在doCallback
方法中調用它之前如何檢查callback
?如果你改變的doCallback
到Option[String]
你會不會做模式匹配的簽名
class Foo(name: String = "", callback: String => String = null) {
def doCallback(arg: String): String = {
if (callback != null) callback(arg) else "" // the checking of not null
}
}
定義一個閉包返回null屁股默認參數 – markusw
@markusw:謝謝,現在我明白了:) – null
只要有可能不要使用'null',請使用'Option'代替 – Andrey