【发布时间】:2011-11-26 13:24:29
【问题描述】:
当我运行我的 ruby 文件时
ruby test.rb
只有一行:
IO.write("testfile.txt","123")
我明白了
test.rb:1:in `<main>': undefined method `write' for IO:Class (NoMethodError)
【问题讨论】:
标签: ruby io nomethoderror
当我运行我的 ruby 文件时
ruby test.rb
只有一行:
IO.write("testfile.txt","123")
我明白了
test.rb:1:in `<main>': undefined method `write' for IO:Class (NoMethodError)
【问题讨论】:
标签: ruby io nomethoderror
嗯,你期待什么样的答案? IO 没有任何名为 write 的类方法。最多它有binwrite 和一个instance 方法#write。
所以要么你使用binwrite (http://rubydoc.info/stdlib/core/1.9.3/IO.binwrite) 要么你使用File 类并完成
File.open("testfile.txt", "w") { |f| f << "123" }
编辑:显然有一个从 Ruby 1.9.3 开始的 IO.write 方法。但是,在 1.9 或 1.8 的任何早期版本中都没有这种方法。
【讨论】:
有几个问题,
如果你想写入文件,你应该使用 File 类
File.open("testfile.txt", "w") 做 |file| 文件.write("123") 结束
我认为您可能刚刚开始使用 Ruby,因此阅读一本关于 Ruby 的书可能是个好主意,该书将展示其中的一些基础知识。我使用过 David Flanagan 和 Matz 的“The Ruby Programming Language”,但也有不少人使用过所谓的 Pickaxe 书或 Dave Thomas、Chad Fowler 和 Andy Hunt 的“Programming Ruby”。
【讨论】: