2

当我运行我的 ruby​​ 文件时

ruby test.rb

其中有一行:

IO.write("testfile.txt","123")

我明白了

test.rb:1:in `<main>': undefined method `write' for IO:Class (NoMethodError)
4

2 回答 2

3

那么,你期待什么样的答案呢?IO没有调用任何类方法write。最多它有binwrite一个实例方法#write

因此,您要么使用binwrite(http://rubydoc.info/stdlib/core/1.9.3/IO.binwrite),要么使用File该类并完整地

File.open("testfile.txt", "w") { |f| f << "123" }

编辑:显然有一个IO.write从 Ruby 1.9.3 开始的方法。但是,在任何早期版本的 1.9 或 1.8 中都没有这种方法。

于 2011-11-26T13:31:15.067 回答
0

有几个问题,

  1. IO 没有类方法 write,这就是您看到异常的原因
  2. 如果要写入文件,则应使用 File 类

    File.open("testfile.txt", "w") 做 |file| file.write("123") 结束

我认为您可能刚刚开始使用 Ruby,因此阅读一本关于 Ruby 的书可能是个好主意,该书将展示其中的一些基础知识。我使用过 David Flanagan 和 Matz 的“The Ruby Programming Language”,但也有不少人使用过 Dave Thomas、Chad Fowler 和 Andy Hunt 的 Pickaxe 书或“Programming Ruby”。

于 2011-11-26T13:36:19.287 回答