使用Some(salt),Option(salt)作为方法参数默认值无法通过编译
case 1 使用Some(salt)作为参数默认值无法通过编译
object Digest {
import utils.Hex._
val salt = Configuration.load(Environment.simple()).get[String]("hash.salt")
def digest(s: String, salt: Option[String] = Some(salt)): String = {
...
}
}
[info] Compiling 1 Scala source to /home/xiao/weibos_service/target/scala-2.12/classes ...
[error] /home/xiao/weibos_service/app/utils/encrypt/Digest.scala:12:55: type mismatch;
[error] found : Option[String]
[error] required: String
[error] def digest(s: String, salt: Option[String] = Option(salt)): String = {
[error] ^
[error] one error found
[error] (compile:compileIncremental) Compilation failed
[error] Total time: 1 s, completed 2018-3-14 17:41:30
case 2 使用另一个新的成员saltOpt=Some(salt)作为参数默认值就能通过编译了
object Digest {
import utils.Hex._
val salt = Configuration.load(Environment.simple()).get[String]("hash.salt")
private val someSalt = Option(salt)
def digest(s: String, salt: Option[String] = someSalt): String = {
...
}
}
???
digest
里面的salt
和外面定义的salt
重复了,改个名字就好了。