以下是我的代码:
md5 = Digest::MD5.new
md5 << "!@#$"
然后是错误:
SyntaxError: (irb):46: unterminated string meets end of file
有什么问题?如何计算字符串"!@#$"
的md5哈希?
答案 0 :(得分:2)
双引号字符串中的哈希#
符号用于变量和表达式替换。在这种情况下,您将全局变量$"
的值替换为字符串,但您没有关闭字符串。语法正确的表达方式是
"!@#$"" # Note the extra closing quotes
然而,似乎你实际上并不想做变量替换,在这种情况下你应该总是使用单引号字符串:
'!@#$'
答案 1 :(得分:1)
你的问题是你得到的字符串是双撇号(&#34;) - 所以它被解释了。你内部有一个哈希(#),所以它试图进行表达式替换。将字符串放在单个撇号中:
md5 << '!@#$'
答案 2 :(得分:0)
好像你需要引用#
:
> puts "!@\#$"
!@#$