避免在 Scala 中使用可变变量被认为是一种很好的做法。
来自“Scala 编程,第 2 版”,第 52 页:“Scala 允许您以命令式风格进行编程,但鼓励您采用更具函数式的风格”,后来“Scala 鼓励您倾向于 vals,但最终达到适合手头工作的最佳工具。”
如何在 Scala 中使这个命令式构造变得优雅(专注于变量count):
var count = 0
val foo = getRequest()
if(foo.isJsonObject){
count = doSomething(foo)
}
if(count>0){
specialCall()
} else{
defaultCall()
}
您使用什么构造或模式将命令式风格的代码转换为函数式风格?
您使用 Option 类或其他一些构造吗?
不确定您是否提供了足够的背景信息,但是:
val foo = getRequest()
val count = if (foo.isJsonObject) doSomething(foo) else 0
if (count > 0) {
specialCall()
} else {
defaultCall()
}
通常,Scala API 一般(集合、Option
, Try
, Future
等)及其操作(map
, flatMap
, filter
, fold
等)允许您非常简洁地表达大多数命令式结构。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)