gpt4 book ai didi

ruby - 相同的字符串但不相等 - 这是怎么回事?

转载 作者:数据小太阳 更新时间:2023-10-29 08:47:58 24 4
gpt4 key购买 nike

这段代码:

io = StringIO.new "\xAF"
puts "\xAF".unpack('C')
puts (io.read 1).unpack('C')
puts 'Unequal' if io.read(1) != "\xAF"

打印:

175
175
Unequal

为什么两个字符串通过StringIO传递时不相等?显然它们都对应于值 175,但不知何故它们并不相等。

最佳答案

文件对象(包括StringIO)有一个文件指针。一旦文件被读/写,文件指针前进。

io = StringIO.new "\xAF"
io.read(1)
# => "\xAF"
io.read(1) # File pointer advance. reached EOF. No more character.
# => nil

如果要重新读取字符,使用seek方法:

io.seek(0) # Move to offset 0
io.read(1)
# => "\xAF"

关于ruby - 相同的字符串但不相等 - 这是怎么回事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21647542/

24 4 0
文章推荐: ruby-on-rails - 如何从 YAML 文件中收集条目?
文章推荐: ruby-on-rails - Rails 4 - 多对多类别不会保存到数据库
文章推荐: Ruby 实例方法和变量
文章推荐: html - 如何将选定的选项从 HTML