gpt4 book ai didi

scala - 如何编写重试函数?

转载 作者:行者123 更新时间:2023-12-03 07:40:16 25 4
gpt4 key购买 nike

假设我有一个函数 foo:Int => Try[Int] 并且我需要重试调用它。也就是说,我需要调用它直到它返回 Success 最多 k 次。

我正在写一个这样的函数retry:

def retry(k: retries)(fun: Int => Try[Int]): Try[Int] = ???

我希望重试返回成功最后失败。你会怎么写?

最佳答案

这是我使用的,它对任何返回 T 的 thunk 都是通用的:

@tailrec
final def withRetry[T](retries: Int)(fn: => T): Try[T] = {
Try(fn) match {
case x: Success[T] => x
case _ if retries > 1 => withRetry(retries - 1)(fn)
case f => f
}
}

关于scala - 如何编写重试函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48440412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com