我是Scala的新手,我发现了这个有趣的一行代码可以从字符串生成十六进制编码的MD5哈希值。我希望有人可以帮助我更好地理解它。
private def getMd5(inputStr: String): String = {
val md: MessageDigest = MessageDigest.getInstance("MD5")
md.digest(inputStr.getBytes()).map(0xFF & _).map { "%02x".format(_) }.foldLeft("") {_ + _}
}
感谢您的选择。
val inputStr = "foo"
,map
调用使用给定操作转换左侧的值。foldLeft
将连接作为输入给定的字符串集合。例如,["foo", "bar", "baz"]
变成"foobarbaz"
。 - Brianmap
和一个foldLeft
来完成可以用单个foldLeft
完成的任务似乎相当低效。 - jwvhmd.digest(inputStr.getBytes()).foldLeft("")(_+"%02x".format(_))
- jwvh