【发布时间】:2022-05-20 01:03:39
【问题描述】:
捕获一个值(可能不是幂等的)以记录和返回相同值的最“scala-ic”方式是什么。
我认为'return'语句是唯一的方法,但显然在scala中应该避免使用'return'。
用例:
def myfunc(argument) : ReturnType{
val response:ReturnType = dependency()
// dependency() is not idemptotent
// so calling more than once will have side-effects
logger.debug(response.member1 , response.member2)
return response
}
有没有办法在不使用'return'关键字的情况下实现这一点。
我是 scala 的新手,所以我所说的某些(或大部分)内容可能是错误的,并且很乐意得到纠正。
【问题讨论】:
-
只需删除单词
return- 评估最后一个表达式的结果会自动作为函数的结果返回,因此仅response本身就可以工作。 -
不太清楚你在问什么,但你可能在追求红隼模式:stackoverflow.com/questions/23231509/…