[英]Function as tuple parameter on Scala
我試圖表明問題而且我做得最差。 讓我們給出復雜的代碼。
我正在調用一個函數:
mySchedule(config, actorSystem.scheduler.schedule) {
...
}
該函數定義如下:
def mySchedule(config: MyConfig, cb: (FiniteDuration, FiniteDuration) => (=> Unit) => Cancellable)(f : => Unit) = {
val initialDelay = ...
val interval = ...
cb(initialDelay, interval)(f)
}
為了做測試,我願意做類似的事情
def noop: Unit = {}
val promiseSchedule = Promise[(FiniteDuration, FiniteDuration, => Unit)]()
mySchedule(
config,
{... promiseSchedule.success((initialDelay, interval, f))}
)(noop)
promiseSchedule.future.value must be_==(...)
我該如何工作?
試試看:
def noop(): Unit = {}
val promiseSchedule = Promise[(Int, () => Unit)]()
// ...
promiseSchedule.success((1, noop))
原因是因為在元組中(就像在案例類中一樣)構造函數的所有成員都是val。
並且不可能在val中存儲按名稱調用,而只能存儲其值或函數。
干杯
雖然這個問題已得到解答,但這篇博文可能會激發一些關於創建Scala“Noop”的想法: https : //jazzy.id.au/2015/04/01/noop-monad.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.