【发布时间】:2014-07-19 21:40:57
【问题描述】:
我正在尝试使用来自 subreddit 的问题来学习 Ruby。我正在处理a problem,它要求我获取一个包含一系列由空格分隔的十六进制值的字符串,然后将它们转换为二进制并根据二进制值进行一些工作。我看起来应该是一个可行的解决方案,但是当我运行它时出现错误。代码如下:
print "enter: "
vals = gets.chomp.split
for i in 0...vals.length do
vals[i].hex.to_s(2)!
end
vals.each {|x| puts x}
我收到以下错误消息:
test.rb:6: syntax error, unexpected '!', expecting keyword_end
test.rb:9: syntax error, unexpected end-of-input, expecting keyword_end
据我了解,.hex 方法应该返回一个十六进制字符串的十进制值,并且 to_s(2)!应该将该整数转换为二进制字符串。不过很明显,我没有得到任何东西。
【问题讨论】:
-
to_s之后的 bang 无效。并且没有.to_s!方法 -
谁让你在这里使用
!vals[i].hex.to_s(2)!?你在关注哪个文档? -
@ArupRakshit - 没有人告诉我;它主要是反复试验的产物。现在我明白为什么错了。
标签: ruby