scala - 如果我在 getOrElse 中使用 print 语句,则无法在 Option 的 getOrElse 路径中分配值
问题描述
我想从中读取一个值application.conf
。如果该值不存在,我想分配一个默认值
val keyspaceOption:Option[String] = configuration.getOptional("db.keyspaceName")
println(s"database will connect with keyspace ${keyspaceOption}")
val keyspaceName = keyspaceOption.map(keyspace =>{
keyspace
})
.getOrElse(
println("unable to pick keyspace name from configuration. Using default value")
"someDefaultName"
)
cassandraConnectionService.initKeySpace(cassandraSession,keyspaceName)
我在上面的代码中收到以下错误
Error:(171, 7) ')' expected but string literal found.
"someDefaultName"
如果我删除了 print 语句,getOrElse
那么它就会编译。为什么?
.getOrElse(//works
//println("unable to pick keyspace name from configuration. Using default value")
"someDefaultName"
)
解决方案
你需要更换
.getOrElse(
println("unable to pick keyspace name from configuration. Using default value")
"someDefaultName"
)
和
.getOrElse{
println("unable to pick keyspace name from configuration. Using default value");
"someDefaultName"
}
推荐阅读
- python - 错误:(gcloud.beta.ai-platform.versions.create)参数版本:必须指定
- javascript - JavaScript - 变量的数学运算
- javascript - Reactjs 中的 setState 不是函数
- python - 为什么我的 python 没有正确安装,即使我没有错误?
- javascript - 在输入的检查状态下更改标签背景
- intellij-idea - 如何告诉 intellij 在失败的命令上恢复宏执行?
- javascript - 将对象数组分解为二维数组
- node.js - 变量赋值
- vue.js - 使用 vue-ci-service 创建新变量,如 `BASE_URL` 以在 index.html 中使用
- sql-server - 使用案例语句时计算分组计数